localtime, _localtime32, _localtime64

Konvertiert einen Zeitwert und berichtigt die lokale Zeitzone. Sicherere Versionen dieser Funktionen sind verfügbar; siehe , , _localtime64_s_localtime32_s.localtime_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 und time32_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 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 des Monats (1 - 31).
tm_mon Monat (0 - 11; Januar = 0).
tm_year Jahr (aktuelles Jahr minus 1900).
tm_wday Wochentag (0 - 6; Sonntag = 0).
tm_yday Tag des Jahres (0 - 365; 1. Januar = 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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the 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