Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Konvertiert einen Zeitwert und berichtigt die lokale Zeitzone. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter 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 );
Parameter
sourceTime
Zeiger auf die gespeicherte Zeit
Rückgabewert
Geben Sie einen Zeiger auf das Strukturergebnis oder NULL zurück, wenn das Datum, das an die Funktion weitergegeben wurde, wie folgt ist:
Vor Mitternacht, 1. Januar 1970
Nach 03:14:07 am 19. Januar 2038, UTC (mit
_time32undtime32_t)Nach 23:59:59, 31. Dezember 3000 UTC (mit
_time64und__time64_t)
_localtime64, das die __time64_t-Struktur verwendet, erlaubt das Ausdrücken von Daten über den 31. Dezember 3000, 23:59:59 UTC (Koordinierte Weltzeit) hinaus, während _localtime32 Datumsangaben bis zum 18. Januar 2038, 23:59:59, UTC, darstellt.
localtime ist eine Inlinefunktion, die _localtime64 auswertet, und time_t entspricht __time64_t. Wenn Sie den Compiler zwingen müssen, time_t als das alte 32-Bit-time_t zu interpretieren, definieren Sie _USE_32BIT_TIME_T.
_USE_32BIT_TIME_T ursachen localtime für die Auswertung von _localtime32. Es wird nicht empfohlen _USE_32BIT_TIME_T, da Ihre Anwendung nach dem 18. Januar 2038 fehlschlägt und auf 64-Bit-Plattformen nicht zulässig ist.
Die Felder des Strukturtyps tm speichern die folgenden Werte, von denen jede eine intist:
| Feld | Beschreibung |
|---|---|
tm_sec |
Sekunden nach Minute (0 - 59). |
tm_min |
Minuten nach Stunde (0 - 59). |
tm_hour |
Stunden seit Mitternacht (0 - 23). |
tm_mday |
Tag im Monat (1 - 31). |
tm_mon |
Monat (0 - 11; Januar = 0). |
tm_year |
Jahr (aktuelles Jahr minus 1900). |
tm_wday |
Tag der Woche (0 - 6; Sonntag = 0). |
tm_yday |
Tag des Jahres (0 - 365; Januar 1 = 0). |
tm_isdst |
Positiver Wert, wenn Sommerzeit wirksam ist; 0, wenn die Sommerzeit nicht wirksam ist; Negativer Wert, wenn der Status der Sommerzeit unbekannt ist. |
Wenn die Umgebungsvariable TZ festgelegt ist, setzt die C-Laufzeitbibliothek voraus, dass die Regeln für die USA für die Implementierung der Berechnung der Sommerzeit gelten.
Hinweise
Die localtime Funktion konvertiert eine als Wert gespeicherte time_t Zeit und speichert das Ergebnis in einer Struktur vom Typ tm. Der long-Wert sourceTime stellt die Sekunden dar, die seit Mitternacht (00:00:00), 1. Januar 1970, UTC, verstrichen sind. Dieser Wert wird häufig aus der time Funktion abgerufen.
Sowohl die 32-Bit- als auch die 64-Bit-Versionen von gmtime, mktime, mkgmtime und localtime nutzen für die Konvertierung pro Thread eine einzige tm-Struktur. Bei jedem Aufruf dieser Routinen wird das Ergebnis des vorherigen Aufrufs zerstört.
localtime korrigiert für die lokale Zeitzone, wenn der Benutzer zunächst die globalen Umgebungsvariablen TZ festlegt. Wenn TZ festgelegt wird, werden drei andere Umgebungsvariablen (_timezone, _daylight, und _tzname) ebenfalls automatisch festgelegt. Wenn die TZ Variable nicht festgelegt ist, wird versucht, die Zeitzoneninformationen zu verwenden, localtime die in der Anwendung "Datum/Uhrzeit" in Systemsteuerung angegeben sind. Wenn diese Informationen nicht abgerufen werden können, wird PST8PDT, der die Pazifische Zeitzone angibt, standardmäßig verwendet. Eine Beschreibung dieser Variablen finden Sie unter.See _tzset for a description of these variables.
TZ ist eine Microsoft-Erweiterung und nicht Teil der ANSI-Standarddefinition von localtime.
Hinweis
Die Zielumgebung soll versuchen zu bestimmen, ob die Sommerzeit wirksam ist.
Diese Funktionen überprüfen ihre Parameter. Wenn sourceTime es sich um einen Nullzeiger handelt oder der sourceTime Wert negativ ist, rufen diese Funktionen einen ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL zurück und setzt errno auf EINVAL.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Hinweis
Wenn Sie Windows SDK Version 10.0.26100.6901 und Visual Studio 2026 oder höher verwenden, localtime ist es nicht mehr static inline (interne Verknüpfung). Stattdessen ist inline es (externe Verknüpfung).
Um zum vorherigen Verhalten zurückzukehren, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 bevor Sie CRT-Header einschließen.
_STATIC_INLINE_UCRT_FUNCTIONS ist standardmäßig auf „0“ festgelegt.
Diese Änderung erhöht die UCRT-Konformität mit dem C++-Standard und verbessert die Kompatibilität mit C++-Modulen.
Anforderungen
| Routine | Erforderlicher C-Header | Erforderlicher C++-Header |
|---|---|---|
localtime, _localtime32_localtime64 |
<time.h> |
<ctime> oder <time.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Siehe auch
Zeitverwaltung
asctime, _wasctime
ctime, , _ctime32_ctime64, _wctime, , _wctime32_wctime64
_ftime, _ftime32_ftime64
gmtime, _gmtime32_gmtime64
localtime_s, _localtime32_s_localtime64_s
time, _time32_time64
_tzset