localtime, localtime_r, localtime_s
|
Definiert in Header
<time.h>
|
||
| (1) | ||
| (2) | (seit C23) | |
| (3) | (seit C11) | |
struct tm
-Format. Das Ergebnis wird im statischen Speicher abgelegt und ein Zeiger auf diesen statischen Speicher wird zurückgegeben.
-
- timer oder buf ist ein Nullzeiger
-
Wie bei allen bounds-checked-Funktionen ist
localtime_snur garantiert verfügbar, wenn __STDC_LIB_EXT1__ durch die Implementierung definiert ist und wenn der Benutzer __STDC_WANT_LIB_EXT1__ auf den Integer-Konstantenwert 1 setzt, bevor <time.h> eingebunden wird.
Inhaltsverzeichnis |
Parameter
| timer | - | Zeiger auf ein time_t Objekt zur Konvertierung |
| buf | - | Zeiger auf ein struct tm Objekt zur Speicherung des Ergebnisses |
Rückgabewert
localtime
und
ctime
geteilt werden und kann bei jedem Aufruf überschrieben werden.
Hinweise
Die Funktion
localtime
ist möglicherweise nicht threadsicher. Die
Microsoft CRT
Implementierung ist threadsicher.
POSIX verlangt, dass
localtime
und
localtime_r
errno
auf
EOVERFLOW
setzen, falls sie fehlschlagen, weil das Argument zu groß ist.
POSIX spezifiziert
, dass die Zeitzoneninformationen durch
localtime
und
localtime_r
bestimmt werden, als ob
tzset
aufgerufen würde, was die Umgebungsvariable
TZ
ausliest.
Die Implementierung von
localtime_s
im
Microsoft CRT
ist nicht mit dem C-Standard kompatibel, da sie eine umgekehrte Parameterreihenfolge aufweist und
errno_t
zurückgibt.
Beispiel
#define __STDC_WANT_LIB_EXT1__ 1 #define _XOPEN_SOURCE // for putenv #include <stdio.h> #include <stdlib.h> // for putenv #include <time.h> int main(void) { time_t t = time(NULL); printf("UTC: %s", asctime(gmtime(&t))); printf("local: %s", asctime(localtime(&t))); // POSIX-spezifisch putenv("TZ=Asia/Singapore"); printf("Singapore: %s", asctime(localtime(&t))); #ifdef __STDC_LIB_EXT1__ struct tm buf; char str[26]; asctime_s(str, sizeof str, gmtime_s(&t, &buf)); printf("UTC: %s", str); asctime_s(str, sizeof str, localtime_s(&t, &buf)); printf("local: %s", str); #endif }
Mögliche Ausgabe:
UTC: Fri Sep 15 14:22:05 2017 local: Fri Sep 15 14:22:05 2017 Singapore: Fri Sep 15 22:22:05 2017 UTC: Fri Sep 15 14:22:05 2017 local: Fri Sep 15 14:22:05 2017
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.27.3.4 Die localtime-Funktion (S: TBD)
-
- K.3.8.2.4 Die localtime_s-Funktion (S: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.27.3.4 Die localtime-Funktion (S: 288)
-
- K.3.8.2.4 Die localtime_s-Funktion (S: 455)
- C11 Standard (ISO/IEC 9899:2011):
-
- 7.27.3.4 Die localtime-Funktion (S: 394)
-
- K.3.8.2.4 Die localtime_s-Funktion (S: 627)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.23.3.4 Die localtime-Funktion (S: 343)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 4.12.3.4 Die localtime-Funktion
Siehe auch
|
(C23)
(C11)
|
wandelt Zeit seit Epoche in Kalenderzeit um, ausgedrückt als Koordinierte Weltzeit (UTC)
(Funktion) |
|
C++-Dokumentation
für
localtime
|
|