Partager via


gmtime_s, _gmtime32_s, _gmtime64_s

Convertit une valeur de temps à une structure.Ce sont des versions de _gmtime32, _gmtime64 avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du 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 une structure d' tm .Les champs de la structure retournée conservent leur valeur évaluée de l'argument d' timer dans l'heure UTC plutôt que dans le temps l'heure locale.

  • time
    Pointeur vers le temps stocké.L'heure est représentée sous forme de secondes écoulées depuis minuit (0h00 : 00), le 1er janvier 1970, coordinated universal time (UTC)).

Valeur de retour

Zéro si l'opération a réussi.La valeur de retour est un code d'erreur si un échec.Les codes d'erreur sont définis dans Errno.h ; pour obtenir la liste de ces erreurs, consultez l' errno.

conditions d'erreur

_tm

time

Return

valeur dans _tm

NULL

quels

EINVAL

non modifié.

Pas NULL (pointe vers une mémoire non valide)

NULL

EINVAL

tous les champs définis à -1.

pas NULL

< 0

EINVAL

tous les champs définis à -1.

Dans le cas de les deux premières conditions d'erreur, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, ces errno défini par fonctions à EINVAL et à EINVALde retour.

Notes

La fonction d' _gmtime32_s détaille la valeur d' time et le stocke dans une structure de type tm, définie dans Time.h.l'adresse de la structure est passée dans _tm.La valeur d' time est généralement obtenue à partir d'un appel à la fonction d' time .

[!REMARQUE]

L'environnement cible doit essayer de déterminer si l'heure d'été est appliquée.La bibliothèque Runtime C utilise des règles des états-unis pour implémenter le calcul de l'heure d'été.

Chacun des champs de structure est 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 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.

_gmtime64_s, qui utilise la structure d' __time64_t , accorde des dates à exprimer via le 23h59 : 59, le 31 décembre, 3000, l'heure UTC ; alors qu' gmtime32_s ne représentent que les dates via le 3h14 : Le 7 janvier 19, 2038, l'heure UTC.Minuit, le 1er janvier 1970, correspond à la limite inférieure de la plage de dates pour ces deux fonctions.

gmtime_s est une fonction inline qui correspond à _gmtime64_s et time_t équivaut à __time64_t.Si vous devez forcer le compilateur à interpréter time_t comme time_t32 bits ancien, vous pouvez définir _USE_32BIT_TIME_T.Cela rendra gmtime_s bordé dans à _gmtime32_s.Cela n'est pas recommandé parce que votre application peut échouer après le 18 janvier 2038, et il n'est pas autorisé sur les plateformes 64 bits.

Configuration requise

routine

en-tête requis

gmtime_s

<time.h>

_gmtime32_s

<time.h>

_gmtime64_s

<time.h>

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

Exemple

// 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 );
}
  

Équivalent .NET Framework

Voir aussi

Référence

Gestion de la durée

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

time, _time32, _time64