localtime, _localtime32, _localtime64
Convertit une valeur d'heure et la correction du fuseau horaire local.plus les versions sécurisées de ces fonctions sont disponibles ; consultez localtime_s, _localtime32_s, _localtime64_s.
struct tm *localtime(
const time_t *timer
);
struct tm *_localtime32(
const __time32_t *timer
);
struct tm *_localtime64(
const __time64_t *timer
);
Paramètres
- timer
Pointeur vers le temps stocké.
Valeur de retour
Retournez plutôt un pointeur au résultat de structure, ou NULL si la date passée à la fonction est :
avant minuit, le 1er janvier 1970.
après 3h14 : 07, le 19 janvier 2038, UTC (à l'aide de _time32et time32_t).
après 23h59 : 59, le 31 décembre, 3000, UTC (à l'aide de _time64 et __time64_t).
_localtime64, qui utilise la structure d' __time64_t , accorde des dates à exprimer via le 23h59 : 59, le 31 décembre, 3000, (UTC) coordinated universal time), alors qu' _localtime32 représente des dates via le 3h14 : Le 7 janvier 19, 2038, l'heure UTC.
localtime est une fonction inline qui correspond à _localtime64, et time_t équivaut à __time64_t.Si vous devez forcer le compilateur à interpréter time_tcomme time_t32 bits ancien, vous pouvez définir _USE_32BIT_TIME_T.Cela entraînera l'évaluer localtime à _localtime32.Cela n'est pas recommandé parce que votre application peut échouer après le 19 janvier 2038, et il n'est pas autorisé sur les plateformes 64 bits.
Les champs du type le TM de structure stockent les valeurs suivantes, qui est int:
tm_sec
secondes après la minute (0 - 59).tm_min
minutes après l'heure (0 - 59).tm_hour
Heures après 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 activé ; 0 si l'heure d'été n'est pas appliqué ; 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 utilise des règles appropriées aux états-unis pour implémenter le calcul de l'heure d' (DST)été.
Notes
La fonction d' localtime convertit une heure enregistré en tant que valeur de time_t et stocke le résultat dans une structure de type tm.La valeur timer d' long représente les secondes s'est écoulé depuis minuit (0h00 : 00), le 1er janvier 1970, l'heure UTC.Cette valeur est généralement fournie par la fonction d' time .
Les versions 32 bits et 64 bits de gmtime, d' mktime, d' mkgmtime, et d' localtime toute utilisation une structure unique d' tm par thread pour la conversion.Chaque appel à l'une de ces routines détruit le résultat de l'appel précédent.
localtime corrige pour le fuseau horaire local si l'utilisateur définit d'abord la variable d'environnement globale TZ.Lorsque TZ est défini, trois autres variables d'environnement (_timezone, _daylight, et _tzname) automatiquement sont également définies.Si la variable d' TZ n'est pas définie, les tentatives d' localtime d'utiliser les informations de fuseau horaire avez spécifié dans l'application de date/heure du panneau de configuration.Si ces informations ne peuvent pas être obtenues, PST8PDT, ce qui signifie que le fuseau horaire Pacifique (états-unis), est utilisé par défaut.Consultez _tzset pour obtenir une description de ces variables.TZ est une extension Microsoft et pas partie de la définition de date d' localtime.
[!REMARQUE]
L'environnement cible doit essayer de déterminer si l'heure d'été est appliquée.
ces fonctions valident leurs paramètres.si timer est un pointeur null, ou si la valeur de minuterie est négative, ces fonctions appellent un gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, les fonctions NULL de retour et errno défini à EINVAL.
Configuration requise
routine |
en-tête requis |
---|---|
localtime |
<time.h> |
_localtime32 |
<time.h> |
_localtime64 |
<time.h> |
Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.
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 );
}
Équivalent .NET Framework
System : : Datetime : : ToLocalTime
Voir aussi
Référence
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64