Delen via


localtime, _localtime32_localtime64

Converteert een tijdwaarde en corrigeert deze voor de lokale tijdzone. Er zijn veiligere versies van deze functies beschikbaar; zie localtime_s, , _localtime64_s_localtime32_s.

Syntaxis

struct tm *localtime( const time_t *sourceTime ); // See note in remarks section about linkage
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );

Parameterwaarden

sourceTime
Aanwijzer naar opgeslagen tijd.

Retourwaarde

Retourneer een aanwijzer naar het structuurresultaat of NULL als de datum die aan de functie is doorgegeven:

  • Vóór middernacht, 1 januari 1970.

  • Na 03:14:07, 19 januari 2038, UTC (met en _time32time32_t).

  • Na 23:59:59, 31 december 3000, UTC (met en _time64__time64_t).

_localtime64, waarbij de __time64_t structuur wordt gebruikt, kunnen datums worden uitgedrukt tot 23:59:59, 31 december 3000, gecoördineerde universele tijd (UTC), terwijl _localtime32 datums tot 23:59:59:59 januari 18, 2038, UTC.

localtime is een inline-functie die resulteert _localtime64in , en time_t gelijk is aan __time64_t. Als u wilt afdwingen dat de compiler wordt geïnterpreteerd time_t als de oude 32-bits time_t, kunt u definiëren _USE_32BIT_TIME_T. _USE_32BIT_TIME_Toorzaken localtime om te evalueren ._localtime32 We raden u niet aan _USE_32BIT_TIME_T, omdat uw toepassing na 18 januari 2038 kan mislukken en dit niet is toegestaan op 64-bits platforms.

In de velden van het structuurtype tm worden de volgende waarden opgeslagen, die elk een int:

Veld Description
tm_sec Seconden na minuut (0 - 59).
tm_min Minuten na uur (0 - 59).
tm_hour Uren sinds middernacht (0 - 23).
tm_mday Dag van de maand (1 - 31).
tm_mon Maand (0 - 11; Januari = 0).
tm_year Jaar (huidig jaar minus 1900).
tm_wday Dag van de week (0 - 6; Zondag = 0).
tm_yday Dag van het jaar (0 - 365; 1 januari = 0).
tm_isdst Positieve waarde als zomertijd van kracht is; 0 als zomertijd niet van kracht is; negatieve waarde als de status van zomertijd onbekend is.

Als de TZ omgevingsvariabele is ingesteld, wordt in de C-runtimebibliotheek uitgegaan van regels die geschikt zijn voor de Verenigde Staten voor het implementeren van de berekening van zomertijd (DST).

Opmerkingen

De localtime functie converteert een tijd die is opgeslagen als een time_t waarde en slaat het resultaat op in een structuur van het type tm. De long waarde sourceTime vertegenwoordigt de seconden die zijn verstreken sinds middernacht (00:00:00), 1 januari 1970, UTC. Deze waarde wordt vaak verkregen van de time functie.

Zowel de 32-bits als de 64-bits versies van gmtime, mktimemkgmtimeen localtime gebruiken allemaal één tm structuur per thread voor de conversie. Elke aanroep van een van deze routines vernietigt het resultaat van de vorige aanroep.

localtime corrigeert voor de lokale tijdzone als de gebruiker eerst de globale omgevingsvariabele TZinstelt. Wanneer TZ deze is ingesteld, worden ook drie andere omgevingsvariabelen (_timezone, _daylighten _tzname) automatisch ingesteld. Als de TZ variabele niet is ingesteld, localtime probeert u de tijdzonegegevens te gebruiken die zijn opgegeven in de toepassing Datum/tijd in het Configuratiescherm. Als deze informatie niet kan worden verkregen, wordt PST8PDT, die de Pacific Time Zone aangeeft, standaard gebruikt. Zie _tzset voor een beschrijving van deze variabelen. TZ is een Microsoft-extensie en maakt geen deel uit van de ANSI-standaarddefinitie van localtime.

Opmerking

De doelomgeving moet proberen te bepalen of zomertijd van kracht is.

Deze functies valideren hun parameters. Als sourceTime dit een null-aanwijzer is of als de sourceTime waarde negatief is, roepen deze functies een ongeldige parameterhandler aan, zoals beschreven in parametervalidatie. Als de uitvoering mag worden voortgezet, worden de functies geretourneerd NULL en ingesteld op errnoEINVAL.

De globale status van deze functie is standaard gericht op de toepassing. Als u dit gedrag wilt wijzigen, raadpleegt u de globale status in de CRT.

Opmerking

Wanneer u Windows SDK versie 10.0.26100.6901 en Visual Studio 2026 of hoger samen gebruikt, localtime is dit niet meer static inline (interne koppeling). In plaats daarvan is inline het (externe koppeling).
Als u wilt terugkeren naar het vorige gedrag, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 voordat u CRT-headers op te geven. _STATIC_INLINE_UCRT_FUNCTIONS Standaard is ingesteld op 0.
Deze wijziging verhoogt de UCRT-conformiteit met de C++-standaard en verbetert de compatibiliteit met C++-modules.

Requirements

Routine Vereiste C-header Vereiste C++-header
localtime, _localtime32_localtime64 <time.h> <ctime> of <time.h>

Zie Compatibiliteit voor meer compatibiliteitsinformatie.

Example

// 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

Zie ook

Tijdbeheer
asctime, _wasctime
ctime, , _ctime32_ctime64, _wctime, , , _wctime32_wctime64
_ftime, _ftime32_ftime64
gmtime, _gmtime32_gmtime64
localtime_s, _localtime32_s_localtime64_s
time, _time32_time64
_tzset