localtime, localtime_r, localtime_s
|
Défini dans l'en-tête
<time.h>
|
||
| (1) | ||
| (2) | (depuis C23) | |
| (3) | (depuis C11) | |
struct tm
. Le résultat est stocké dans un stockage statique et un pointeur vers ce stockage statique est renvoyé.
-
- timer ou buf est un pointeur nul
-
Comme pour toutes les fonctions à vérification de limites,
localtime_sn'est garantie d'être disponible que si __STDC_LIB_EXT1__ est défini par l'implémentation et si l'utilisateur définit __STDC_WANT_LIB_EXT1__ à la constante entière 1 avant d'inclure <time.h> .
Table des matières |
Paramètres
| timer | - | pointeur vers un objet time_t à convertir |
| buf | - | pointeur vers un objet struct tm pour stocker le résultat |
Valeur de retour
localtime
, et
ctime
et peut être écrasée à chaque invocation.
Notes
La fonction
localtime
peut ne pas être sûre en contexte multithread. L'implémentation
Microsoft CRT
est sûre en contexte multithread.
POSIX exige que
localtime
et
localtime_r
définissent
errno
à
EOVERFLOW
en cas d'échec dû à un argument trop volumineux.
POSIX spécifie
que les informations de fuseau horaire sont déterminées par
localtime
et
localtime_r
comme si en appelant
tzset
, qui lit la variable d'environnement
TZ
.
L'implémentation de
localtime_s
dans
Microsoft CRT
est incompatible avec la norme C car elle a inversé l'ordre des paramètres et retourne
errno_t
.
Exemple
#define __STDC_WANT_LIB_EXT1__ 1 #define _XOPEN_SOURCE // for putenv #include <stdio.h> #include <stdlib.h> // for putenv #include <time.h> int main(void) { time_t t = time(NULL); printf("UTC: %s", asctime(gmtime(&t))); printf("local: %s", asctime(localtime(&t))); // POSIX-specific putenv("TZ=Asia/Singapore"); printf("Singapore: %s", asctime(localtime(&t))); #ifdef __STDC_LIB_EXT1__ struct tm buf; char str[26]; asctime_s(str, sizeof str, gmtime_s(&t, &buf)); printf("UTC: %s", str); asctime_s(str, sizeof str, localtime_s(&t, &buf)); printf("local: %s", str); #endif }
Sortie possible :
UTC: Fri Sep 15 14:22:05 2017 local: Fri Sep 15 14:22:05 2017 Singapore: Fri Sep 15 22:22:05 2017 UTC: Fri Sep 15 14:22:05 2017 local: Fri Sep 15 14:22:05 2017
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.27.3.4 La fonction localtime (p: TBD)
-
- K.3.8.2.4 La fonction localtime_s (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.27.3.4 La fonction localtime (p: 288)
-
- K.3.8.2.4 La fonction localtime_s (p: 455)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.27.3.4 La fonction localtime (p: 394)
-
- K.3.8.2.4 La fonction localtime_s (p: 627)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.23.3.4 La fonction localtime (p: 343)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.12.3.4 La fonction localtime
Voir aussi
|
(C23)
(C11)
|
convertit le temps depuis l'époque en temps calendaire exprimé en temps universel coordonné (UTC)
(fonction) |
|
Documentation C++
pour
localtime
|
|