localtime
, , _localtime32
_localtime64
Convertit une valeur de temps et effectue une correction en fonction du fuseau horaire local. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez localtime_s
, _localtime32_s
, _localtime64_s
.
Syntaxe
struct tm *localtime( const time_t *sourceTime );
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );
Paramètres
sourceTime
Pointeur désignant la valeur de temps stockée.
Valeur retournée
Retourner un pointeur désignant le résultat de la structure, ou NULL
si la date passée à la fonction se situe :
Avant le 1er janvier 1970 à minuit
Après le 19 janvier 2038 à 03:14:07, heure UTC (dans le cas de
_time32
et detime32_t
).Après le 31 décembre 3000 à 23:59:59, heure UTC (dans le cas de
_time64
et de__time64_t
).
_localtime64
, qui utilise la structure __time64_t
, permet d’exprimer les dates jusqu’au 31 décembre 3000 à 23:59:59, heure UTC (temps universel coordonné), tandis que _localtime32
représente les dates jusqu’au 18 janvier 2038 à 23:59:59, heure UTC.
localtime
est une fonction inline qui prend la valeur _localtime64
, tandis que time_t
équivaut à __time64_t
. Si vous devez forcer le compilateur à interpréter time_t
comme ancien time_t
32 bits, vous pouvez définir _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
causes localtime
à évaluer à _localtime32
. Nous vous déconseillons _USE_32BIT_TIME_T
, car votre application peut échouer après le 18 janvier 2038 et elle n’est pas autorisée sur les plateformes 64 bits.
Les champs du type tm
de structure stockent les valeurs suivantes, chacune d’elles étant un int
:
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 |
Valeur positive si l’heure d’été est en vigueur ; 0 si l’heure d’été n’est pas en vigueur ; valeur négative si l’état de l’heure d’été est inconnu. |
Si la variable d’environnement TZ
est définie, la bibliothèque runtime C suppose que les règles de calcul de l’heure d’été appropriées sont celles des États-Unis.
Notes
La localtime
fonction convertit une heure stockée sous forme de time_t
valeur et stocke le résultat dans une structure de type tm
. La valeur long
sourceTime
représente les secondes écoulées depuis le 1er janvier 1970 à minuit (00:00:00), heure UTC. Cette valeur est souvent obtenue à partir de la time
fonction.
Les versions 32 bits et 64 bits de gmtime
, mktime
, mkgmtime
et localtime
utilisent toutes une structure tm
unique par thread pour la conversion. Chaque appel à une de ces routines détruit le résultat de l’appel précédent.
localtime
effectue une correction en fonction du fuseau horaire local si l’utilisateur définit d’abord la variable d’environnement globale TZ
. Quand TZ
est définie, les trois autres variables d’environnement (_timezone
, _daylight
et _tzname
) sont également définies automatiquement. Si la TZ
variable n’est pas définie, localtime
tente d’utiliser les informations de fuseau horaire spécifiées dans l’application Date/Heure dans 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. Consultez _tzset
une description de ces variables. TZ
est une extension Microsoft et ne fait pas partie de la définition de la norme ANSI de localtime
.
Remarque
L’environnement cible doit tenter de déterminer si l’heure d’été est en vigueur.
Ces fonctions valident leurs paramètres. S’il sourceTime
s’agit d’un pointeur Null ou si la sourceTime
valeur est négative, ces fonctions appellent un gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, les fonctions retournent NULL
et affectent à errno
la valeur EINVAL
.
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 |
---|---|---|
localtime , , _localtime32 _localtime64 |
<time.h> |
<ctime> ou <time.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_localtime.cpp
// compile with: /W3
// This program uses _time64 to get the current time
// and then uses localtime64() 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;
_time64( &long_time ); // Get time as 64-bit integer.
// Convert to local time.
newtime = _localtime64( &long_time ); // C4996
// Note: _localtime64 deprecated; consider _localetime64_s
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;
char buff[30];
asctime_s( buff, sizeof(buff), newtime );
printf( "%.19s %s\n", buff, am_pm );
}
Tue Feb 12 10:05:58 AM
Voir aussi
Gestion des horaires
asctime
, _wasctime
ctime
, , _ctime32
, _wctime
_ctime64
, , _wctime32
_wctime64
_ftime
, , _ftime32
_ftime64
gmtime
, , _gmtime32
_gmtime64
localtime_s
, , _localtime32_s
_localtime64_s
time
, , _time32
_time64
_tzset