ctime_s
, , _ctime32_s
_ctime64_s
, _wctime_s
, , _wctime32_s
_wctime64_s
Konvertieren Sie einen Zeitwert in eine Zeichenfolge, und passen Sie sie an die Zeitzoneneinstellungen an. Diese Funktionen sind Versionen von ctime
, _ctime64
, _wctime
mit _wctime64
Sicherheitsverbesserungen, wie in Sicherheitsfeatures im CRT beschrieben.
Syntax
errno_t ctime_s(
char* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _ctime32_s(
char* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *sourceTime )
;
errno_t _wctime_s(
wchar_t* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _wctime32_s(
wchar_t* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _wctime64_s(
wchar_t* buffer,
size_t numberOfElements,
const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
char (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
char (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
wchar_t (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
wchar_t (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
Parameter
buffer
Muss groß genug für 26 Zeichen sein. Ein Zeiger auf das Zeichenfolgenergebnis oder NULL
wenn:
sourceTime
ein Datum vor dem 1. Januar 1970 um Mitternacht (koordinierte Weltzeit, UTC) darstellt.Wenn Sie
_ctime32_s
oder_wctime32_s
verwenden, undsourceTime
ein Datum nach dem 18. Januar 2038, 23:59:59 Uhr (koordinierte Weltzeit, UTC) darstellt.Wenn Sie
_ctime64_s
oder_wctime64_s
verwenden, undsourceTime
ein Datum nach dem 31. Dezember 3000, 23:59:59 Uhr (koordinierte Weltzeit, UTC) darstellt.Wenn Sie
_ctime_s
oder_wctime_s
verwenden; diese Funktionen sind Wrapper für die zuvor genannten Funktionen. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.
numberOfElements
Die Größe des Puffers.
sourceTime
Zeiger auf die gespeicherte Zeit
Rückgabewert
Null, wenn erfolgreich. Wenn aufgrund eines ungültigen Parameters ein Fehler auftritt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, wird ein Fehlercode zurückgegeben. Fehlercodes werden in ERRNO definiert. H; eine Auflistung dieser Fehler finden Sie unter errno
. Die jeweiligen Fehlercodes, die für jede Fehlerbedingung zurückgegeben werden, sind in folgender Tabelle aufgelistet.
Fehlerbedingungen
buffer |
numberOfElements |
sourceTime |
Return | Wert in buffer . |
---|---|---|---|---|
NULL |
any | any | EINVAL |
Not modified (Nicht geändert) |
Nicht NULL (zeigt gültigen Speicher an) |
0 | any | EINVAL |
Not modified (Nicht geändert) |
Nicht NULL |
0< Größe < 26 | any | EINVAL |
Leere Zeichenfolge |
Nicht NULL |
>= 26 | NULL | EINVAL |
Leere Zeichenfolge |
Nicht NULL |
>= 26 | < 0 | EINVAL |
Leere Zeichenfolge |
Hinweise
Die ctime_s
Funktion konvertiert einen als Struktur gespeicherten Zeitwert in time_t
eine Zeichenfolge. Der sourceTime
Wert wird in der Regel von einem Aufruf time
von abgerufen, der die Anzahl der Sekunden zurückgibt, die seit Mitternacht (00:00:00), 1. Januar 1970, koordinierte Weltzeit (UTC) vergangen sind. Der Rückgabewert der Zeichenfolge enthält genau 26 Zeichen und sieht so aus:
Wed Jan 2 02:03:55 1980\n\0
Eine 24-Stunden-Uhr wird verwendet. Alle Felder haben eine feste Breite. Das Zeichen für neue Zeile ('\n') und das Nullzeichen ('\0') nehmen die letzten beiden Stellen der Zeichenfolge ein.
Die konvertierte Zeichenfolge wird auch gemäß den lokalen Zeitzoneneinstellungen angepasst. Informationen zum Konfigurieren der Ortszeit finden Sie in den time
, _ftime
und localtime
funktionen. Ausführliche Informationen zum Definieren der Zeitzonenumgebung und globalen Variablen finden Sie in der _tzset
Funktion.
_wctime32_s
und _wctime64_s
sind die Breitzeichenversion von _ctime32_s
und _ctime64_s
und geben einen Zeiger auf die Breitzeichen-Zeichenfolge zurück. Andernfalls verhalten sich _ctime64_s
, _wctime32_s
und _wctime64_s
identisch zu _ctime32_s
.
ctime_s
ist eine Inlinefunktion, die _ctime64_s
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
. Dieses Makro bewirkt ctime_s
, dass das Makro ausgewertet wird _ctime32_s
. Es wird nicht empfohlen, da Ihre Anwendung nach dem 18. Januar 2038 fehlschlägt und auf 64-Bit-Plattformen nicht zulässig ist.
Die Verwendung dieser Funktionen in C++ wird durch Überladungen (als Vorlagen vorhanden) vereinfacht. Überladungen können automatisch die Pufferlänge ableiten, sodass kein Größenargument angegeben werden muss. Weitere Informationen finden Sie unter Secure Template Overloads.
Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThreshold
zum Deaktivieren dieses Verhaltens .
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tctime_s |
ctime_s |
ctime_s |
_wctime_s |
_tctime32_s |
_ctime32_s |
_ctime32_s |
_wctime32_s |
_tctime64_s |
_ctime64_s |
_ctime64_s |
_wctime64_s |
Anforderungen
Routine | Erforderlicher Header |
---|---|
ctime_s , _ctime32_s _ctime64_s |
<time.h> |
_wctime_s , _wctime32_s _wctime64_s |
<time.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Alle Versionen der C-Laufzeitbibliotheken.
Beispiel
// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.
#include <time.h>
#include <stdio.h>
#define SIZE 26
int main( void )
{
time_t ltime;
wchar_t buf[SIZE];
errno_t err;
time( <ime );
err = _wctime_s( buf, SIZE, <ime );
if (err != 0)
{
printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
}
wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003
Siehe auch
Zeitverwaltung
asctime_s
, _wasctime_s
ctime
, , _ctime32
_ctime64
, _wctime
, , _wctime32
_wctime64
_ftime
, _ftime32
_ftime64
gmtime_s
, _gmtime32_s
_gmtime64_s
localtime_s
, _localtime32_s
_localtime64_s
time
, _time32
_time64