Exporter (0) Imprimer
Développer tout
and
div
eof
not
or
xor
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

localtime_s, _localtime32_s, _localtime64_s

Convertit une valeur d'heure et corrige pour le fuseau horaire. Il s'agit de versions de localtime, _localtime32, _localtime64 avec des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.

errno_t localtime_s(
   struct tm* _tm,
   const time_t *time 
);
errno_t _localtime32_s(
   struct tm* _tm,
   const time32_t *time 
);
errno_t _localtime64_s(
   struct tm* _tm,
   const _time64_t *time 
);

_tm

Pointeur vers la structure de temps à remplir.

time

Pointeur vers le temps stocké.

Zéro en cas de réussite. La valeur de retour est un code d'erreur en cas de échec. Les codes d'erreur sont définis dans ERRNO.H. Pour une liste de ces erreurs, consultez errno.

Conditions d'erreur

_tm

time

Valeur de retour

Valeur dans _tm

Appelle le gestionnaire de paramètre non valide

NULL

ANY

EINVAL

Non modifié

Oui

Non NULL (pointe vers la mémoire valide)

NULL

EINVAL

Tous les champs définis à -1

Oui

Non NULL (pointe vers la mémoire valide)

Inférieur à 0 ou supérieur à _MAX__TIME64_T

EINVAL

Tous les champs définis à -1

Non

Dans le cas des deux premières conditions d'erreur, 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 définissent errno à la valeur EINVAL et retournent EINVAL.

La fonction _localtime32_s convertit une heure enregistrée comme valeur time_t et stocke le résultat dans une structure de type tm. La valeur longtimer représente des secondes écoulées depuis minuit (00:00:00), le 1er janvier 1970, UTC. Cette valeur est généralement obtenue à l'aide de la fonction time.

_localtime32_s corrige pour le fuseau horaire si l'utilisateur définit en premier la variable d'environnement global TZ. Lorsque TZ est défini, trois autres variables d'environnement (_timezone, _daylight, et _tzname) sont également définies automatiquement. Si la variable TZ n'est pas activée, localtime32_s tente d'utiliser les informations de fuseau horaire spécifiée dans l'application de date et d'heure dans le panneau de configuration. Si ces informations ne peuvent pas être obtenues, PST8PDT, ce qui signifie que le fuseau horaire Pacifique est utilisé par défaut. Voir _tzset pour obtenir une description de ces variables. TZ est une extension Microsoft et non pas une partie de la définition ANSI standard de localtime.

Remarque Remarque

L'environnement cible doit tenter de déterminer si l'enregistrement de l'heure du jour est activé.

_localtime64_s , qui utilise la structure __time64_t, permet aux dates d'être exprimées jusqu'à 23:59:59, le 31 décembre, 3000, temps universel coordonné (UTC), alors que _localtime32_s représente des dates jusqu'à 03:14:07, le 19 janvier, 2038, UTC.

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

Les champs de type de structure le TM stockent les valeurs suivantes, chacune desquelles est un int.

tm_sec

Les secondes après les minutes (0 à 59).

tm_min

Les minutes après les heure (0 à 59).

tm_hour

Heures après minuit (0 – 23).

tm_mday

Le jour du mois (1 à 31).

tm_mon

Le mois (0 à 11 ; Janvier = 0).

tm_year

L'année (année en cours moins 1900).

tm_wday

Le jour de la semaine (0 à 6 ; Dimanche = 0).

tm_yday

Le jour de l'année (0 à 365 ; 1er janvier = 0).

tm_isdst

Valeur positive si l'heure d'été est appliquée ; 0 si l'heure d'été n'est pas appliquée ; valeur négative si l'état d'heure d'été est inconnu. Si la variable d'environnement TZ est définie, la bibliothèque Runtime C suppose les règles appropriées aux états-unis pour implémenter le calcul de l'heure d'été (DST).

Routine

En-tête requis

localtime_s

<time.h>

_localtime32_s

<time.h>

_localtime64_s

<time.h>

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

// crt_localtime_s.c
/* This program uses _time64 to get the current time 
 * and then uses _localtime64_s() to convert this time to a structure 
 * representing the local time. The program converts the result 
 * from a 24-hour clock to a 12-hour clock and determines the 
 * proper extension (AM or PM).
 */

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

int main( void )
{
        struct tm newtime;
        char am_pm[] = "AM";
        __time64_t long_time;
        char timebuf[26];
        errno_t err;

        // Get time as 64-bit integer.
        _time64( &long_time ); 
        // Convert to local time.
        err = _localtime64_s( &newtime, &long_time ); 
        if (err)
        {
            printf("Invalid argument to _localtime64_s.");
            exit(1);
        }
        if( newtime.tm_hour > 12 )        // Set up extension. 
                strcpy_s( am_pm, sizeof(am_pm), "PM" );
        if( newtime.tm_hour > 12 )        // Convert from 24-hour 
                newtime.tm_hour -= 12;    // to 12-hour clock. 
        if( newtime.tm_hour == 0 )        // Set hour to 12 if midnight.
                newtime.tm_hour = 12;

        // Convert to an ASCII representation. 
        err = asctime_s(timebuf, 26, &newtime);
        if (err)
        {
           printf("Invalid argument to asctime_s.");
           exit(1);
        }
        printf( "%.19s %s\n", timebuf, am_pm );
}

Fri Apr 25 01:19:27 PM

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft