Freigeben über


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

Uhrzeitverwaltung

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset