gmtime, _gmtime32, _gmtime64

Convertit une valeur de temps time_t en structure tm. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez gmtime_s, _gmtime32_s, _gmtime64_s.

Syntaxe

struct tm *gmtime( const time_t *sourceTime );
struct tm *_gmtime32( const __time32_t *sourceTime );
struct tm *_gmtime64( const __time64_t *sourceTime );

Paramètres

sourceTime
Pointeur désignant la valeur de temps stockée. Le temps est représenté sous forme de secondes écoulées depuis le 1er janvier 1970 minuit (00:00:00), temps universel coordonné (UTC).

Valeur retournée

Pointeur vers une structure de type tm. Les champs de la structure retournée doivent contenir la valeur évaluée de l’argument sourceTime en heure UTC plutôt qu’en heure locale. Chacun des champs de la structure est de type int, comme suit :

Champ Description
tm_sec Secondes après la minute (0 - 59).
tm_min Minutes après l’heure (0 - 59).
tm_hour Heures depuis minuit (0 - 23).
tm_mday Jour du mois (1 - 31).
tm_mon Mois (0 - 11 ; janvier = 0).
tm_year Année (année en cours moins 1900).
tm_wday Jour de la semaine (0 - 6 ; dimanche = 0).
tm_yday Jour de l’année (0 - 365 ; 1er janvier = 0).
tm_isdst Toujours 0 pour gmtime.

Les versions 32 bits et 64 bits de gmtime, mktime, mkgmtime et localtime utilisent toutes une structure tm commune par thread pour la conversion. Chaque appel à une de ces fonctions détruit le résultat de tout appel précédent. Si sourceTime représente une date antérieure au 1er janvier 1970 à minuit, gmtime retourne NULL. Il n’existe aucun retour d’erreur.

_gmtime64, qui utilise la structure __time64_t, permet d’exprimer les dates jusqu’à 23:59:59, le 31 décembre 3000, UTC. _gmtime32 représente uniquement les dates jusqu’à 23:59:59 le 18 janvier 2038, UTC. Le 1er janvier 1970 à minuit est la limite inférieure de la plage de dates pour les deux fonctions.

gmtime est une fonction inline qui prend la valeur _gmtime64, tandis que time_t équivaut à __time64_t sauf si _USE_32BIT_TIME_T est défini. Si vous devez forcer le compilateur à interpréter time_t comme l’ancien time_t 32 bits, vous pouvez définir _USE_32BIT_TIME_T, mais ce faisant gmtime se retrouve inline avec _gmtime32, et time_t doit être défini en tant que __time32_t. Nous vous déconseillons d’utiliser _USE_32BIT_TIME_T, car il n’est pas autorisé sur les plateformes 64 bits. Dans tous les cas, votre application risque de ne plus fonctionner après le 18 janvier 2038.

Ces fonctions valident leurs paramètres. Si sourceTime est un pointeur NULL, ou si la valeur sourceTime est négative, ces fonctions appellent un gestionnaire de paramètres non valide, comme indiqué dans Validation des paramètres. Si l’exécution est autorisée à se poursuivre, les fonctions retournent NULL et affectent à errno la valeur EINVAL.

Notes

La fonction _gmtime32 décompose la valeur sourceTime et la stocke dans une structure allouée de manière statique, de type tm, définie dans TIME.H. La valeur de sourceTime est généralement obtenue à partir d’un appel à la fonction time.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Routine En-tête C requis En-tête C++ requis
gmtime, _gmtime32, _gmtime64 <time.h> <ctime> ou <time.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.

#include <time.h>
#include <stdio.h>

int main(void)
{
   struct tm *newtime;
   __int64 ltime;
   char buff[80];

   _time64( &ltime );

   // Obtain coordinated universal time:
   newtime = _gmtime64( &ltime ); // C4996
   // Note: _gmtime64 is deprecated; consider using _gmtime64_s
   asctime_s( buff, sizeof(buff), newtime );
   printf( "Coordinated universal time is %s\n", buff );
}
Coordinated universal time is Tue Feb 12 23:11:31 2002

Voir aussi

Gestion des horaires
asctime, _wasctime
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime, _localtime32, _localtime64
_mkgmtime, _mkgmtime32, _mkgmtime64
mktime, _mktime32, _mktime64
time, _time32, _time64