asctime_s, _wasctime_s
Konvertiert eine Zeitstruktur tm in eine Zeichenfolge. Diese Funktionen sind Versionen von asctime, _wasctime mit werden, wie in Sicherheitsfunktionen in der CRT beschrieben.
errno_t asctime_s(
char* buffer,
size_t numberOfElements,
const struct tm *_tm
);
errno_t _wasctime_s(
wchar_t* buffer,
size_t numberOfElements
const struct tm *_tm
);
template <size_t size>
errno_t asctime_s(
char (&buffer)[size],
const struct tm *_tm
); // C++ only
template <size_t size>
errno_t _wasctime_s(
wchar_t (&buffer)[size],
const struct tm *_tm
); // C++ only
Parameter
buffer
[out] Ein Zeiger auf einen Puffer, um den Zeichenfolgenergebnisses zu speichern. Diese Funktion verwendet einen Zeiger auf eine gültige Speicheradresse mit einer Größe an, die von numberOfElements angegeben wird.numberOfElements
[in] Die Größe des Puffers verwendet, um das Ergebnis zu speichern._tm
[in] Datum-/Uhrzeit-Struktur. Diese Funktion verwendet einen Zeiger auf ein gültiges Objekt structtm an.
Rückgabewert
Null wenn erfolgreich. Wenn es einen Fehler enthält, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, ist der Rückgabewert ein Fehlercode. Fehlercodes werden in ERRNO.H. definiert. Weitere Informationen finden Sie unter errno-Konstanten. Die tatsächlichen Fehlercodes, die für jeden Fehlerzustand zurückgegeben werden, werden in der folgenden Tabelle dargestellt.
Fehlerbedingungen
buffer |
numberOfElements |
tm |
Return |
Wert in buffer |
---|---|---|---|---|
NULL |
Irgendein |
Irgendein |
EINVAL |
Nicht geändert |
Nicht NULL (Punkte zum gültigen Arbeitsspeicher) |
0 |
Irgendein |
EINVAL |
Nicht geändert |
Nicht NULL |
0< Größe < 26 |
Irgendein |
EINVAL |
Leere Zeichenfolge |
Nicht NULL |
>= 26 |
NULL |
EINVAL |
Leere Zeichenfolge |
Nicht NULL |
>= 26 |
Ungültige Zeitstruktur oder aus Bereichswerten für Komponenten der die Zeit abgelaufen |
EINVAL |
Leere Zeichenfolge |
Hinweis
Fehlerzustände für wasctime_s sind mit asctime_s vergleichbar, mit der Ausnahme, dass wird die Größenbeschränkung in Worten gemessen.
Hinweise
Die asctime-Funktion konvertiert eine Zeit, die als Struktur einer Zeichenfolge gespeichert ist. Der Wert _tm wird normalerweise von einem Aufruf von gmtime oder localtime erhalten. Beide Funktionen können verwendet werden, um eine Struktur tm auszufüllen, wie in TIME.H. definiert.
timeptr Member |
Wert |
---|---|
tm_hour |
Stunden ab Mitternacht (0-23) |
tm_isdst |
Positiv, wenn Sommerzeit wirksam ist; 0 die Sommerzeit nicht aktiv ist; Negativ, wenn Status der Sommerzeit nicht bekannt ist. Die C-Laufzeitbibliothek die akzeptiert der Vereinigten Staaten Regeln zum Implementieren der Berechnung der Sommerzeit (DST) an. |
tm_mday |
Tag des Monats (1-31) |
tm_min |
Minuten nach Stunde (0-59) |
tm_mon |
Monat (0-11; Januar = 0) |
tm_sec |
Sekunden nach Minute (0-59) |
tm_wday |
Wochentag (0-6; Sonntag = 0) |
tm_yday |
Tag des Jahres (0-365; Am 1. Januar = 0) |
tm_year |
Jahr (Open-Wheel-Racing-Team Jahr minus 1900) |
Die konvertierte Zeichenfolge wird auch nach den Einstellungen der lokalen Zeitzone angepasst. Siehe time, _time32, _time64, _ftime, _ftime32, _ftime64 und localtime_s, _localtime32_s, _localtime64_s-Funktionen zu Informationen zum Konfigurieren der Ortszeit und der _tzset-Funktion zu Informationen über das Definieren der Zeitzonenumgebung und der globalen Variablen.
Das Zeichenfolgenergebnis, das von asctime_s erzeugt wird, enthält genau 26 Zeichen und weist das Format Wed Jan 02 02:03:55 1980\n\0. Ein 24-Stunden-Format wird verwendet. Alle Felder verfügen eine konstante Breite. Das Zeilenumbruchzeichen und das Nullzeichen nehmen die letzten zwei Positionen der Zeichenfolge ein. Der Wert, der in als zweiten Parameter übergeben wird, sollte dieser großer mindestens sein. Wenn er kleiner ist, wird ein Fehlercode, EINVAL, zurückgegeben.
_wasctime_s ist eine Breitzeichenversion von asctime_s. _wasctime_s und asctime_s verhalten sich andernfalls identisch.
Zuordnung generische Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tasctime_s |
asctime_s |
asctime_s |
_wasctime_s |
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.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
asctime_s |
<time.h> |
_wasctime_s |
<time.h oder> wchar.h <> |
Sicherheit
Wenn der Pufferzeiger nicht NULL und der Zeiger nicht auf einen gültigen Puffer wird, überschreibt die Funktion, was am Speicherort befindet. Dies kann eine Zugriffsverletzung auch führen.
Pufferüberlauf kann auftreten, wenn das Größenargument, das übergeben wird, größer das tatsächliche Größe des Puffers ist.
Beispiel
Dieses Programm platziert die Systemzeit in langen ganzzahligen aclock, übersetzt sie in die newtime-Struktur und konvertiert sie anschließend in Zeichenfolgenform für Ausgaben, mit der asctime_s-Funktion.
// crt_asctime_s.c
#include <time.h>
#include <stdio.h>
struct tm newtime;
__time32_t aclock;
int main( void )
{
char buffer[32];
errno_t errNum;
_time32( &aclock ); // Get time in seconds.
_localtime32_s( &newtime, &aclock ); // Convert time to struct tm form.
// Print local time as a string.
errNum = asctime_s(buffer, 32, &newtime);
if (errNum)
{
printf("Error code: %d", (int)errNum);
return 1;
}
printf( "Current date and time: %s", buffer );
return 0;
}
.NET Framework-Entsprechung
Siehe auch
Referenz
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s