Freigeben über


localtime, _localtime32, _localtime64

Konvertiert einen Zeitwert und korrigieren Sie für die lokale Zeitzone. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu 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 zu gespeicherten Zeit.

Rückgabewert

Geben Sie einen Zeiger auf Strukturergebnis oder NULL zurück, wenn das Datum, das an die Funktion übergeben wird, ist:

  • Vor Mitternacht am 1. Januar 1970.

  • Nach 03:14: 07 am 19. Januar 2038 UTC (mit _time32 und time32_t).

  • Nach 23:59: 59 3000 am 31. Dezember, UTC (mit _time64 und __time64_t).

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

localtime ist eine Inlinefunktion, die zu _localtime64, und time_t entspricht __time64_t. Wenn Sie dem Compiler erzwingen müssen, um time_t als 32-Bit- alte time_t interpretiert, können Sie _USE_32BIT_TIME_T definieren. Hierdurch wird localtime, _localtime32 auszuwerten. Dies ist nicht empfehlenswert, da Ihre Anwendung möglicherweise nach dem 19. Januar 2038 fehlschlägt, und nicht auf 64-Bit-Plattformen zulässig.

Die Felder des Strukturtyps TM werden die folgenden Werte, von denen jeder int ist:

  • tm_sec
    Sekunden nach Minute (0 - 59).

  • tm_min
    Minuten nach Stunde (0 - 59).

  • tm_hour
    Stunden nach 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 die Sommerzeit nicht aktiv ist; negativer Wert, wenn Status der Sommerzeit nicht bekannt ist. Wenn die Umgebungsvariable TZ festgelegt wird, hat die C-Laufzeitbibliothek die Regeln an, die in den USA zum Implementieren der Berechnung der Sommerzeit (DST) entsprechen.

Hinweise

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

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

localtime behoben für die lokale Zeitzone, wenn der Benutzer zunächst die globale Umgebungsvariable TZ festgelegt wird. Wenn TZ festgelegt wird, werden drei anderen Umgebungsvariablen (_timezone, _daylight und _tzname) auch automatisch festgelegt. Wenn die Variable TZ nicht festgelegt ist, versucht localtime, die Zeitzonendaten verwenden, die in der Datum /Uhrzeits- Anwendung in der Systemsteuerung angegeben werden. Wenn diese Informationen nicht ermittelt werden können, wird PST8PDT, das die Zeitzone Pacific angibt, standardmäßig verwendet. _tzset finden Sie eine Beschreibung dieser Variablen. TZ ist einer Microsoft-Erweiterung und ein nicht Teil der ANSI-Standarddefinition von localtime.

Hinweis

Die Zielumgebung sollte versuchen, zu bestimmen, ob Sommerzeit wirksam ist.

Diese Funktionen überprüfen ihre Parameter. Wenn timer ein ungültiger NULL-Zeiger oder der Zeitwert negativ ist, rufen diese Funktionen den Handler für ungültige Parameter auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL zurück und setzt errno auf EINVAL.

Anforderungen

Routine

Erforderlicher Header

localtime

<time.h>

_localtime32

<time.h>

_localtime64

<time.h>

Zusätzliche Informationen zur Kompatibilität 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

Uhrzeitverwaltung

asctime, _wasctime

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset