localtime, _localtime32, _localtime64

Konvertiert einen Zeitwert und korrigieren Sie für die lokale Zeitzone.Sicherere Versionen dieser Funktionen sind verfügbar. Weitere Informationen finden Sie unter localtime_s, _localtime32_s, _localtime64_s.

struct tm *localtime(
   const time_t *timer 
);
struct tm *_localtime32(
   const __time32_t *timer
);
struct tm *_localtime64(
   const __time64_t *timer 
);

Parameter

  • timer
    Zeiger auf gespeicherten Zeit.

Rückgabewert

Geben Sie einen Zeiger auf das Ergebnis der Struktur oder NULL zurück, wenn das Datum, das der Funktion übergeben wird, ist:

  • Vor dem am 1. Januar 1970.

  • Nach 03:14: 07 (Coordinated Universal Time, UTC am 19. Januar 2038 mithilfe _time32und time32_t).

  • Nach 23:59: 59 3000 am 31. Dezember, die koordinierte Weltzeit ( _time64 und Using __time64_t).

_localtime64, die die __time64_t - Struktur verwendet, stellt die oben und 23:59 Datumsangaben ausgedrückt werden: 59 3000 am 31. Dezember, koordinierte Weltzeit (UTC), während _localtime32 Datumsangaben und 03:14 darstellt: Am 7. Januar 19 2038, UTC.

localtime ist eine Inlinefunktion, die _localtime64ergibt, und time_t ist mit __time64_t.Wenn Sie den Compiler erzwingen müssen, um alte als time_t32-Bit- time_tinterpretiert wird, können Sie _USE_32BIT_TIME_Tdefinieren.Auf diese Weise wird localtime , _localtime32auszuwerten.Dies wird nicht empfohlen, da die Anwendung möglicherweise nach dem 19. Januar 2038 fehlschlägt, und sie wird nicht auf 64-Bit-Plattformen nicht zulässig.

Die Felder des Strukturtyps TM speichern den folgenden Werten, von denen jeder intist:

  • tm_sec
    Sekunden (0 Minute nach 59).

  • tm_min
    Minuten nach der vollen Stunde (0:59).

  • tm_hour
    Stunden nach Mitternacht (0:23).

  • tm_mday
    Tag des Monats (1 bis 31).

  • tm_mon
    Monat (0 bis 11. Januar = 0).

  • tm_year
    Jahres (laufendes Jahr minus 1900).

  • tm_wday
    Tag der Woche (0 – 6; Sonntag = 0).

  • tm_yday
    Tag des Jahres (0 – 365; Am 1. Januar = 0).

  • tm_isdst
    Positiver Wert, wenn die Sommerzeit aktiv ist. 0 = Sommerzeit nicht aktiv ist. negativer Wert, wenn Status der Sommerzeit unbekannt ist.Wenn die TZ Umgebungsvariable festgelegt ist, erhält die C-Laufzeitbibliothek die Regeln an, die den USA zum Implementieren der Berechnung der Sommerzeit (DST) entsprechen.

Hinweise

Die localtime-Funktion konvertiert eine Uhrzeit, die als time_t-Wert gespeichert wird und speichert das Ergebnis in einer Struktur des Typs tm.Der long-Wert timer stellt die seit Mitternacht vergangenen Sekunden verstrich dar (00:00: 00) am 1. Januar 1970 UTC.Dieser Wert wird normalerweise von der time-Funktion abgerufen.

verwenden die 32-Bit- und 64-Bit-Versionen von gmtime, mktime, mkgmtimeund alle localtime eine einzelne Struktur tm pro Thread für die Konvertierung.Jeder Aufruf von einer der folgenden Routinen zerstört das Ergebnis des vorherigen Aufrufs.

localtime korrigiert für die lokale Zeitzone, wenn der Benutzer zuerst die globalen Umgebungsvariablen TZfestlegt.Wenn TZ festgelegt ist, werden drei weitere Umgebungsvariablen (_timezone, _daylightund _tzname) automatisch ebenfalls festgelegt.Wenn die TZ-Variable nicht festgelegt ist, versucht localtime mit Zeitzoneninformationen zu verwenden, die in der Datum/Uhrzeit-Anwendung in der Systemsteuerung angegeben werden.Wenn diese Informationen nicht abgerufen werden können, wird PST8PDT, das die Zeitzone Pacific angibt, standardmäßig verwendet.Weitere Informationen finden Sie unter _tzset für die Beschreibung dieser Variablen.TZ ist eine Microsoft-Erweiterung und ein nicht Teil der Definition von localtimeANSI-Standard.

HinweisHinweis

Die Zielumgebung versuchen soll, um zu ermitteln, ob der Sommerzeit gültig ist.

Diese Funktionen überprüfen deren Parameter.Wenn timer ein NULL-Zeiger ist, oder wenn der Zeitgeber dem Wert negativ ist, rufen diese Funktionen einen ungültigen Parameter für ein, wie in Parametervalidierungbeschrieben.Wenn die Ausführung fortgesetzt werden kann, darf die Funktionen geben NULL festlegen und errno zu EINVAL.

Anforderungen

Routine

Erforderlicher Header

localtime

<time.h>

_localtime32

<time.h>

_localtime64

<time.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

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 );
}
  

.NET Framework-Entsprechung

System::DateTime::ToLocalTime

Siehe auch

Referenz

Zeit-Verwaltung

asctime, _wasctime

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime_s, _localtime32_s, _localtime64_s

Zeit, _time32, _time64

_tzset