Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Konverterar ett tidsvärde och korrigerar för den lokala tidszonen. Säkrare versioner av dessa funktioner är tillgängliga. se localtime_s, _localtime32_s, _localtime64_s.
Syntax
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 );
Parameterar
sourceTime
Pekare till lagrad tid.
Returvärde
Returnera en pekare till strukturresultatet, eller NULL om datumet som skickades till funktionen är:
Före midnatt den 1 januari 1970.
Efter 03:14:07, 19 januari 2038, UTC (med och
_time32time32_t).Efter 23:59:59, 31 december 3000, UTC (med och
_time64__time64_t).
_localtime64, som använder __time64_t strukturen, tillåter att datum uttrycks fram till 23:59:59, 31 december 3000, samordnad universell tid (UTC), medan _localtime32 representerar datum till och med 23:59:59 januari 18, 2038, UTC.
localtime är en infogad funktion som utvärderas till _localtime64och time_t motsvarar __time64_t. Om du behöver tvinga kompilatorn att tolka time_t som den gamla 32-bitars time_tkan du definiera _USE_32BIT_TIME_T.
_USE_32BIT_TIME_T orsaker localtime att utvärdera till _localtime32. Vi rekommenderar _USE_32BIT_TIME_Tinte , eftersom programmet kan misslyckas efter den 18 januari 2038 och inte tillåts på 64-bitarsplattformar.
Fälten i strukturtypen tm lagrar följande värden, som var och en är en int:
| Fält | Description |
|---|---|
tm_sec |
Sekunder efter minut (0–59). |
tm_min |
Minuter efter timme (0-59). |
tm_hour |
Timmar sedan midnatt (0-23). |
tm_mday |
Dag i månaden (1-31). |
tm_mon |
Månad (0–11; Januari = 0). |
tm_year |
År (aktuellt år minus 1900). |
tm_wday |
Veckodag (0-6; Söndag = 0). |
tm_yday |
Dag på året (0-365; 1 januari = 0). |
tm_isdst |
Positivt värde om sommartid är i kraft. 0 om sommartid inte är i kraft; negativt värde om statusen för sommartid är okänd. |
TZ Om miljövariabeln anges antar C-körningsbiblioteket regler som är lämpliga för USA för att implementera beräkningen av sommartid (DST).
Anmärkningar
Funktionen localtime konverterar en tid som lagras som ett time_t värde och lagrar resultatet i en struktur av typen tm. Värdet longsourceTime representerar sekunderna som förflutit sedan midnatt (00:00:00), 1 januari 1970, UTC. Det här värdet hämtas ofta från time funktionen.
Både 32-bitars- och 64-bitarsversionerna av , , och localtime alla använder en enda tm struktur per tråd för konverteringenmkgmtime. mktimegmtime Varje anrop till någon av dessa rutiner förstör resultatet av föregående anrop.
localtime korrigerar för den lokala tidszonen om användaren först anger den globala miljövariabeln TZ. När TZ har angetts anges även tre andra miljövariabler (_timezone, _daylightoch _tzname) automatiskt. Om variabeln TZ inte har angetts localtime försöker du använda den tidszonsinformation som anges i programmet Datum/tid på Kontrollpanelen. Om den här informationen inte kan hämtas används PST8PDT, som betyder Tidszon i Stilla havet, som standard. Se _tzset en beskrivning av dessa variabler.
TZ är ett Microsoft-tillägg och inte en del av ANSI-standarddefinitionen för localtime.
Anmärkning
Målmiljön bör försöka avgöra om sommartid är i kraft.
Dessa funktioner verifierar sina parametrar. Om sourceTime är en null-pekare, eller om sourceTime värdet är negativt, anropar dessa funktioner en ogiltig parameterhanterare enligt beskrivningen i Parameterverifiering. Om körningen tillåts fortsätta returneras NULL funktionerna och anges errno till EINVAL.
Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.
Anmärkning
När du använder Windows SDK version 10.0.26100.6901 och Visual Studio 2026 eller senare tillsammans, localtime är inte längre static inline (intern länkning). I stället är inline det (extern länkning).
För att återgå till det tidigare beteendet, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 innan du inkluderar några CRT-huvuden. Som standard _STATIC_INLINE_UCRT_FUNCTIONS är värdet 0.
Den här ändringen ökar UCRT-överensstämmelsen med C++-standarden och förbättrar kompatibiliteten med C++-moduler.
Kravspecifikation
| Rutin | ObligatoriskT C-huvud | ObligatoriskT C++-huvud |
|---|---|---|
localtime, _localtime32_localtime64 |
<time.h> |
<ctime> eller <time.h> |
Mer kompatibilitetsinformation finns i Kompatibilitet.
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
Se även
Tidshantering
asctime, _wasctime
ctime, _ctime32, _ctime64, _wctime, , _wctime32, _wctime64
_ftime, , _ftime32_ftime64
gmtime, , _gmtime32_gmtime64
localtime_s, , _localtime32_s_localtime64_s
time, , _time32_time64
_tzset