localtime
, _localtime32
_localtime64
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 );
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
_time32
undtime32_t
)Nach 23:59:59, 31. Dezember 3000 UTC (mit
_time64
und__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 int
ist:
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.
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