gmtime_s, _gmtime32_s, _gmtime64_s

 

Date de publication : novembre 2016

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Convertit une valeur d’heure en une structure. Voici les versions de _gmtime32, _gmtime64 avec des améliorations de sécurité comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

errno_t gmtime_s(  
   struct tm* _tm,  
   const __time_t* time  
);  
errno_t _gmtime32_s(  
   struct tm* _tm,  
   const __time32_t* time  
);  
errno_t _gmtime64_s(  
   struct tm* _tm,  
   const __time64_t* time   
);  

Paramètres

_tm
Pointeur vers un tm structure. Les champs de la structure renvoyée doit contenir la valeur évaluée de la timer argument UTC plutôt qu’en heure locale.

time
Pointeur vers l’heure stockée. L’heure est représentée comme secondes écoulées depuis minuit (00 : 00:00), le 1er janvier 1970, temps universel (UTC).

Zéro si l’opération réussit. La valeur de retour est un code d’erreur en cas de panne. Codes d’erreur sont définies dans Errno.h ; Pour obtenir la liste de ces erreurs, consultez la page errno.

Conditions d’erreur

_tmtimeRetournerValeur de_tm
NULLanyEINVALNon modifié.
Pas NULL (pointe vers la mémoire valide)NULLEINVALTous les champs de la valeur -1.
PasNULL< 0EINVALTous les champs de la valeur -1.

Dans le cas de conditions de deux erreur première, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions attribuent à errno la valeur EINVAL et retournent EINVAL.

Le _gmtime32_s fonction décompose le time valeur et la stocke dans une structure de type tm, défini dans Time.h. L’adresse de la structure est passée dans _tm. La valeur de time est généralement obtenue à partir d’un appel à la time (fonction).

System_CAPS_ICON_note.jpg Remarque

L’environnement cible doit essayer de déterminer si l’heure d’été est en vigueur. La bibliothèque Runtime C suppose que les règles des États-Unis pour le calcul de l’heure d’été.

Les champs de la structure sont de type int, comme indiqué dans le tableau suivant.

tm_sec
Secondes après la minute (0 à 59).

tm_min
Minutes après l’heure (0 à 59).

tm_hour
Heures écoulées depuis minuit (0-23).

tm_mday
Jour du mois (1 à 31).

tm_mon
Mois (0 – 11 ; Janvier = 0).

tm_year
Year (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 ; Le 1er janvier = 0).

tm_isdst
Toujours 0 pour gmtime.

_gmtime64_s, qui utilise le __time64_t de la structure, permet d’exprimer à 23:59:59 le 31 décembre 3000 UTC ; des dates tandis que gmtime32_s représentent uniquement les dates et 23:59:59 18 janvier 2038, UTC. Minuit, le 1er janvier 1970, est la limite inférieure de la plage de dates pour ces deux fonctions.

gmtime_sest une fonction inline qui prend la valeur _gmtime64_s et time_t équivaut à __time64_t. Si vous devez forcer le compilateur à interpréter time_t l’ancien 32-bit time_t, vous pouvez définir _USE_32BIT_TIME_T. Cette action provoquerait gmtime_s être inline avec _gmtime32_s. Cela est déconseillé, car votre application peut échouer après le 18 janvier 2038, et il n’est pas autorisée sur les plateformes 64 bits.

RoutineEn-tête requis
gmtime_s<time.h>
_gmtime32_s<time.h>
_gmtime64_s<time.h>

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

// crt_gmtime64_s.c  
// This program uses _gmtime64_s to convert a 64-bit  
// integer representation of coordinated universal time  
// to a structure named newtime, then uses asctime_s to  
// convert this structure to an output string.  
  
#include <time.h>  
#include <stdio.h>  
  
int main( void )  
{  
   struct tm newtime;  
   __int64 ltime;  
   char buf[26];  
   errno_t err;  
  
   _time64( &ltime );  
  
   // Obtain coordinated universal time:   
   err = _gmtime64_s( &newtime, &ltime );  
   if (err)  
   {  
      printf("Invalid Argument to _gmtime64_s.");  
   }  
  
   // Convert to an ASCII representation   
   err = asctime_s(buf, 26, &newtime);  
   if (err)  
   {  
      printf("Invalid Argument to asctime_s.");  
   }  
  
   printf( "Coordinated universal time is %s\n",   
           buf );  
}  

Coordinated universal time is Fri Apr 25 20:12:33 2003  

Gestion du temps
asctime_s, _wasctime_s
CTime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime_s, _localtime32_s, _localtime64_s
_mkgmtime, _mkgmtime32, _mkgmtime64
mktime, _mktime32, _mktime64
heure, _time32, _time64

Afficher: