Partager via


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Convertis une information horaire en une chaîne de caractères et l'ajuste aux paramètres de fuseau horaire locaux. Ce sont des versions de ctime, _ctime64, _wctime, _wctime64 avec les améliorations de sécurité comme décrit dans Fonctionnalités de sécurité dans le CRT.

errno_t ctime_s( 
   char* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _ctime32_s( 
   char* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _ctime64_s( 
   char* buffer,
   size_t numberOfElements,
   const __time64_t *time )
;
errno_t _wctime_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _wctime32_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _wctime64_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *time 
);
template <size_t size>
errno_t _ctime32_s( 
   char (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _ctime64_s( 
   char (&buffer)[size],
   const __time64_t *time
); // C++ only
template <size_t size>
errno_t _wctime32_s( 
   wchar_t (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _wctime64_s( 
   wchar_t (&buffer)[size],
   const __time64_t *time 
); // C++ only

Paramètres

  • [out] buffer
    Doit être suffisamment grand pour stocker 26 caractères. Pointeur vers le résultat de chaîne de caractères, ou NULLsi :

    • time représente une date de minuit, le 1er janvier 1970, UTC.

    • Si vous utilisez _ctime32_s ou _wctime32_s et time représente une date après 3h14 7s : Le 19 janvier 2038.

    • Si vous utilisez _ctime64_s ou _wctime64_s et time représente une date après 23h59 59s : Le 31 décembre 3000, heure UTC.

    • Si vous utilisez _ctime_s ou _wctime_s, ces fonctions sont des wrappers pour les fonctions précédentes. Consultez la section Notes.

  • [in] numberOfElements
    Taille de la mémoire tampon.

  • [in]imet
    Pointeur vers le l'horaire stockée.

Valeur de retour

Zéro en cas de réussite. En cas de échec en raison d'un paramètre non valide, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée de continuer, le code d'erreur est retourné. Les codes d'erreur sont définis dans Errno.h ; pour une liste de ces erreurs, consultez l'errno. Les codes d'erreur réels retournés pour chaque condition d'erreur sont présentés dans le tableau ci-dessous.

Conditions d'erreur

buffer

numberOfElements

time

Return

Valeur dans buffer

NULL

any

any

EINVAL

Non modifié

Non NULL (pointe vers la mémoire valide)

0

any

EINVAL

Non modifié

Non NULL

0< size < 26

any

EINVAL

Chaîne vide

Non NULL

>= 26

NULL

EINVAL

Chaîne vide

Non NULL

>= 26

< 0

EINVAL

Chaîne vide

Notes

La fonction ctime_s convertit une valeur d'heure signalée comme structure time_t en une chaîne de caractères. La valeur de time est généralement obtenue à partir d'un appel à time, qui retourne le nombre de secondes s'est écoulée depuis minuit (0h00 : 00), le 1er janvier 1970, temps universel coordonné (UTC). La chaîne de valeur retournée contient exactement 26 caractères et se présente sous la forme suivante :

Wed Jan 02 02:03:55 1980\n\0

Une horloge de 24 heures est utilisé. Tous les champs ont une largeur constante. Le caractère nouvelle ligne ('\n') et le caractère null ('\0') occupent les deux dernières positions de la chaîne.

La chaîne de caractères convertie est également paramétrée conformément aux paramètres de fuseau horaire. Consultez les fonctions time, _ftime, etlocaltime32_s pour plus d'informations sur la configuration de l'heure locale, et la fonction _tzset pour plus d'informations sur la définition de l'environnement des fuseaux horaires et des variables globales.

_wctime32_s et _wctime64_s forment une version à caractères larges de _ctime32_s et _ctime64_s ; retournent un pointeur vers une chaîne de caractères larges. Sinon, _ctime64_s et _wctime32_s et _wctime64_s se comportent de la même façon.

ctime_s est une fonction inline qui prend _ctime64_s, et time_t équivaut à __time64_t. Si vous devez forcer le compilateur à interpréter time_t en ancien 32 bit time_t, vous pouvez définir _USE_32BIT_TIME_T. Cela fait que ctime_s évalue en _ctime32_s. Cela n'est pas recommandé car votre application peut échouer après le 18 janvier 2038, et elle n'est pas autorisée sur les plateformes 64 bits.

En C++, l'utilisation de ces fonctions est simplifiée par des surcharges de modèle ; les surcharges peuvent également déduire la longueur de la mémoire tampon automatiquement, en éliminant le besoin de spécifier un argument de taille. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_tctime_s

ctime_s

ctime_s

_wctime_s

_tctime32_s

_ctime32_s

_ctime32_s

_wctime32_s

_tctime64_s

_ctime64_s

_ctime64_s

_wctime64_s

Configuration requise

Routine

En-tête requis

ctime_s,

_ctime32_s,

_ctime64_s

<time.h>

_wctime_s,

_wctime32_s,

_wctime64_s

<time.h> or <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Bibliothèques

Toutes les versions des bibliothèques Runtime C.

Exemple

// crt_wctime_s.c
/* This program gets the current
 * time in time_t form and then uses _wctime_s to
 * display the time in string form.
 */

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

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

  
   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}

Résultat de l'exemple

The time is Fri Apr 25 13:03:39 2003

Équivalent .NET Framework

Voir aussi

Référence

Gestion du temps

asctime_s, _wasctime_s

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64