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, _wctimemit _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, und sourceTime ein Datum nach dem 18. Januar 2038, 23:59:59 Uhr (koordinierte Weltzeit, UTC) darstellt.

  • Wenn Sie _ctime64_s oder _wctime64_s verwenden, und sourceTime 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 Beliebig Beliebig EINVAL Not modified (Nicht geändert)
Nicht NULL (zeigt gültigen Speicher an) 0 Beliebig EINVAL Not modified (Nicht geändert)
Nicht NULL 0< Größe < 26 Beliebig 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 timevon 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, _ftimeund 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 "Sichere Vorlagenüberladungen".

Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThresholdzum Deaktivieren dieses Verhaltens .

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

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.

Bibliotheken

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( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   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