LOCALTIME |
Temps local |
---|---|
Langage C++ | ctime (time.h) |
Syntaxe
struct tm *localtime(const time_t *sec) |
Paramètres
Nom | Description |
---|---|
sec | Ce paramètre permet d'indiquer les secondes |
Description
Cette fonction permet de convertir des secondes en date et heure.
Remarques
- La fonction localtime() renvoie un pointeur vers un format de temps décomposée sous le format d'une structure tm. Le temps est représentée en temps régionale. La valeur de temps est généralement obtenue par un appel à time().
- La structure utilisée par localtime() pour contenir le temps ventilé est allouée statiquement et est remplacée à chaque appel de la fonction. Si vous souhaitez enregistrer le contenu de la structure, vous devez le copier ailleurs.
- Définition et utilité : La fonction localtime fait partie de la bibliothèque <ctime> en C++ et permet de convertir un horodatage (un time_t) en une structure tm représentant l'heure locale. Cette fonction est utilisée pour obtenir des informations détaillées sur l'heure actuelle dans le fuseau horaire local de l'utilisateur, comme l'année, le mois, le jour, l'heure, les minutes et les secondes. C'est une fonction très courante pour travailler avec des dates et heures locales dans des programmes nécessitant des informations temporelles précises.
- Structure tm : La fonction localtime retourne un pointeur vers une structure tm contenant les informations suivantes :
- Effet des fuseaux horaires : La fonction localtime prend en compte le fuseau horaire local et applique les règles d'ajustement de l'heure, comme l'heure d'été (DST, Daylight Saving Time), si elles sont en vigueur. Par exemple, si l'heure d'été est active dans le fuseau horaire local, l'heure retournée par localtime sera ajustée en conséquence. Cela permet aux programmes de s'adapter automatiquement aux changements d'heure sans avoir à effectuer de calculs complexes manuellement.
- Comportement avec l'heure UTC : La fonction localtime effectue la conversion d'un horodatage UTC en heure locale, prenant en compte le fuseau horaire de l'environnement du programme. Cela signifie que si l'horodatage time_t représente une heure UTC (temps universel coordonné), localtime va appliquer les déplacements nécessaires pour obtenir l'heure locale en fonction du fuseau horaire du système. Pour obtenir l'heure en UTC, il faut utiliser la fonction gmtime à la place.
- Problèmes liés à l'utilisation de la structure renvoyée : L'une des particularités de localtime est que la structure tm qu'elle retourne est modifiée par la fonction elle-même et est non thread-safe. Cela signifie que si vous appelez localtime plusieurs fois ou dans plusieurs processus léger, il est possible que la structure tm partagée soit écrasée et entraîne des comportements imprévisibles. Il est recommandé d'utiliser des copies locales de la structure si vous avez besoin d'accéder à ces informations dans un contexte multi-processus léger. Alternativement, localtime_r (disponible sur certains systèmes Unix) peut être utilisée, car elle est thread-safe.
- Problèmes de compatibilité et alternatives : Bien que localtime soit une fonction standard, elle présente quelques limitations en termes de compatibilité sur différentes plateformes et systèmes d'exploitation. Par exemple, certains systèmes peuvent ne pas gérer correctement certains fuseaux horaires ou ajustements saisonniers. Dans de tels cas, des bibliothèques tierces comme Boost.DateTime ou Chrono (C++11 et supérieur) peuvent être utilisées comme alternatives, offrant plus de flexibilité et de compatibilité pour manipuler des dates et heures locales de manière plus robuste et précise.
Champ | Description |
---|---|
tm_year | L'année depuis 1900 (par exemple, 2025 - 1900 = 125). |
tm_mon | Le mois de l'année (0 pour janvier, 11 pour décembre). |
tm_mday | Le jour du mois (1 à 31). |
tm_hour | L'heure du jour (0 à 23). |
tm_min | Les minutes de l'heure (0 à 59). |
tm_sec | Les secondes de la minute (0 à 59). |
tm_wday | Le jour de la semaine (0 pour dimanche, 6 pour samedi). |
tm_yday | Le jour de l'année (0 à 365). Ces informations sont utiles pour formater l'heure et la date ou effectuer des calculs temporels. |
Exemples
Voici un exemple montrant comment afficher la date courante :

- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <ctime>
-
- int main()
- {
- time_t seconds = time(NULL);
- struct tm * timeinfo = localtime(&seconds);
- char madate[255];
- sprintf(madate,"%04d-%02d-%02d %02d:%02d:%02d",1900+timeinfo->tm_year,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
- std::cout << madate << std::endl;
- return 0;
- }
on obtiendra le résultat suivant si l'heure courante est 8:24 du matin le 27 janvier 2009 :
2009-01-27 08:24:00Voici un exemple simple montrant comment utiliser localtime pour obtenir et afficher l'heure locale :
- #include <iostream>
- #include <ctime>
-
- int main() {
- time_t now = time(0); // Obtenir l'heure actuelle
- struct tm* localTime = localtime(&now); // Convertir en heure locale
-
- std::cout << "Année: " << 1900 + localTime->tm_year << std::endl;
- std::cout << "Mois: " << 1 + localTime->tm_mon << std::endl;
- std::cout << "Jour: " << localTime->tm_mday << std::endl;
- std::cout << "Heure: " << localTime->tm_hour << std::endl;
- std::cout << "Minutes: " << localTime->tm_min << std::endl;
- std::cout << "Secondes: " << localTime->tm_sec << std::endl;
- return 0;
- }
Ce programme affichera l'année, le mois, le jour, l'heure, les minutes et les secondes de l'heure locale actuelle. L'appel à localtime convertit l'horodatage time_t en une structure contenant ces informations détaillées.
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - asctime
Langage de programmation - C++ - Référence de procédures et fonctions - ctime
Langage de programmation - C++ - Référence de procédures et fonctions - gmtime
Langage de programmation - C++ - Référence de procédures et fonctions - time
Langage de programmation - C - Référence de procédures et fonctions - localtime
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 160.