localtime_s, _localtime32_s, _localtime64_s
Konvertiert einen Zeitwert und korrigiert für die lokale Zeitzone.Dies sind Versionen von localtime, _localtime32, _localtime64 mit beschrieben, wie unter Security Enhancements in Sicherheitsfeatures im CRT.
errno_t localtime_s(
struct tm* _tm,
const time_t *time
);
errno_t _localtime32_s(
struct tm* _tm,
const time32_t *time
);
errno_t _localtime64_s(
struct tm* _tm,
const _time64_t *time
);
Parameter
_tm
Zeiger auf die zu füllende Zeit Struktur.time
Zeiger auf die gespeicherten Zeit.
Rückgabewert
Beliebige wenn der Vorgang erfolgreich war.Der Rückgabewert ist ein Fehlercode, wenn ein Fehler auftritt.Fehlercodes werden in Errno.h definiert.Eine Liste dieser Fehler ausgelöst wird, finden Sie unter errno.
Fehlerbedingungen
_tm |
time |
Rückgabewert |
Wert in _tm |
Ruft den Handler auf ungültige Parameter |
---|---|---|---|---|
NULL |
alle |
EINVAL |
Nicht geändert |
Ja |
Nicht NULL (Zeigt auf den gültigen Arbeitsspeicher) |
NULL |
EINVAL |
Alle Felder auf -1 festgelegt |
Ja |
Nicht NULL (Zeigt auf den gültigen Arbeitsspeicher) |
kleiner als 0 oder größer als _MAX__TIME64_T |
EINVAL |
Alle Felder auf -1 festgelegt |
Nein |
Bei der ersten beiden Fehlerbedingungen ungültige Parameter wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung fortgesetzt werden kann, darf dieses Features zu errno festlegen EINVAL und geben EINVAL.
Hinweise
Die _localtime32_s-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.
_localtime32_s 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 localtime32_s 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 pazifische Zeitzone angegeben wird, 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.
Hinweis |
---|
Die Zielumgebung versuchen soll, um zu ermitteln, ob der Sommerzeit gültig ist. |
_localtime64_s, 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_s Datumsangaben und 03:14 darstellt: Am 7. Januar 19 2038, UTC.
localtime_s ist eine Inlinefunktion, die _localtime64_sergibt, und time_t ist mit __time64_t.Wenn Sie den Compiler erzwingen müssen, um alte als time_t 32-Bit- time_tinterpretiert wird, können Sie _USE_32BIT_TIME_Tdefinieren.Auf diese Weise wird localtime_s , _localtime32_sauszuwerten.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.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
localtime_s |
<time.h> |
_localtime32_s |
<time.h> |
_localtime64_s |
<time.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Beispiel
// crt_localtime_s.c
/* This program uses _time64 to get the current time
* and then uses _localtime64_s() 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;
char timebuf[26];
errno_t err;
// Get time as 64-bit integer.
_time64( &long_time );
// Convert to local time.
err = _localtime64_s( &newtime, &long_time );
if (err)
{
printf("Invalid argument to _localtime64_s.");
exit(1);
}
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;
// Convert to an ASCII representation.
err = asctime_s(timebuf, 26, &newtime);
if (err)
{
printf("Invalid argument to asctime_s.");
exit(1);
}
printf( "%.19s %s\n", timebuf, am_pm );
}
Beispielausgabe
Fri Apr 25 01:19:27 PM
.NET Framework-Entsprechung
Siehe auch
Referenz
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s