std:: asctime
|
Definiert in Header
<ctime>
|
||
|
char
*
asctime
(
const
std::
tm
*
time_ptr
)
;
|
||
Wandelt die gegebene Kalenderzeit std::tm in eine textuelle Darstellung des folgenden festen 25-Zeichen-Formats um: Www Mmm dd hh : mm : ss yyyy\n .
-
Www- dreistellige englische Abkürzung des Wochentags aus time_ptr - > tm_wday , einer vonMon,Tue,Wed,Thu,Fri,Sat,Sun. -
Mmm- dreistellige englische Abkürzung des Monatsnamens aus time_ptr - > tm_mon , einer vonJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec. -
dd- 2-stelliger Tag des Monats aus timeptr - > tm_mday , als ob ausgegeben durch sprintf mit % 2d . -
hh- 2-stellige Stunde aus timeptr - > tm_hour , als ob ausgegeben durch sprintf mit % .2d . -
mm- 2-stellige Minute aus timeptr - > tm_min , als ob ausgegeben durch sprintf mit % .2d . -
ss- 2-stellige Sekunde aus timeptr - > tm_sec , als ob ausgegeben durch sprintf mit % .2d . -
yyyy- 4-stelliges Jahr aus timeptr - > tm_year + 1900 , als ob ausgegeben durch sprintf mit % 4d .
Das Verhalten ist undefiniert, falls ein beliebiges Mitglied von * time_ptr außerhalb seines normalen Bereichs liegt.
Das Verhalten ist undefiniert, wenn das durch time_ptr - > tm_year angegebene Kalenderjahr mehr als 4 Stellen hat oder kleiner als das Jahr 1000 ist.
Die Funktion unterstützt keine Lokalisierung und das Zeilenumbruchzeichen kann nicht entfernt werden.
Die Funktion ändert statischen Speicher und ist nicht threadsicher.
Inhaltsverzeichnis |
Parameter
| time_ptr | - | Zeiger auf ein std::tm Objekt, das die auszugebende Zeit spezifiziert |
Rückgabewert
Zeiger auf eine statische nullterminierte Zeichenkette, die die textuelle Darstellung von Datum und Uhrzeit enthält. Die Zeichenkette kann zwischen
std::asctime
und
std::ctime
geteilt werden und kann bei jedem Aufruf einer dieser Funktionen überschrieben werden.
Hinweise
Diese Funktion gibt einen Zeiger auf statische Daten zurück und ist nicht threadsicher. POSIX markiert diese Funktion als veraltet und empfiehlt stattdessen die lokalisierungsabhängige
std::strftime
. Im
std::locale
("C")
wird der
std::strftime
-Formatstring
"%c
\n
"
exakt mit der Ausgabe von
std::asctime
übereinstimmen, während in anderen Locales der Formatstring
"%a %b %e %H:%M:%S %Y
\n
"
eine potenziell bessere, aber nicht immer exakte Übereinstimmung darstellt.
POSIX beschränkt undefiniertes Verhalten nur auf die Fälle, wenn die Ausgabezeichenkette länger als 25 Zeichen wäre, wenn
timeptr->tm_wday
oder
timeptr->tm_mon
nicht innerhalb der erwarteten Bereiche liegen, oder wenn
timeptr->tm_year
den Wert von
INT_MAX
-
1990
überschreitet.
Einige Implementierungen behandeln timeptr - > tm_mday == 0 als Bedeutung des letzten Tages des vorhergehenden Monats.
Beispiel
#include <ctime> #include <iomanip> #include <iostream> int main() { const std::time_t now = std::time(nullptr); for (const char* localeName : {"C", "en_US.utf8", "de_DE.utf8", "ja_JP.utf8"}) { std::cout << "locale " << localeName << ":\n" << std::left; std::locale::global(std::locale(localeName)); std::cout << std::setw(40) << " asctime" << std::asctime(std::localtime(&now)); // strftime output for comparison: char buf[64]; if (strftime(buf, sizeof buf, "%c\n", std::localtime(&now))) std::cout << std::setw(40) << " strftime %c" << buf; if (strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %Y\n", std::localtime(&now))) std::cout << std::setw(40) << " strftime %a %b %e %H:%M:%S %Y" << buf; std::cout << '\n'; } }
Mögliche Ausgabe:
locale C:
asctime Wed Nov 4 00:45:01 2020
strftime %c Wed Nov 4 00:45:01 2020
strftime %a %b %e %H:%M:%S %Y Wed Nov 4 00:45:01 2020
locale en_US.utf8:
asctime Wed Nov 4 00:45:01 2020
strftime %c Wed 04 Nov 2020 12:45:01 AM UTC
strftime %a %b %e %H:%M:%S %Y Wed Nov 4 00:45:01 2020
locale de_DE.utf8:
asctime Wed Nov 4 00:45:01 2020
strftime %c Mi 04 Nov 2020 00:45:01 UTC
strftime %a %b %e %H:%M:%S %Y Mi Nov 4 00:45:01 2020
locale ja_JP.utf8:
asctime Wed Nov 4 00:45:01 2020
strftime %c 2020年11月04日 00時45分01秒
strftime %a %b %e %H:%M:%S %Y 水 11月 4 00:45:01 2020
Siehe auch
|
konvertiert ein
std::time_t
Objekt in eine textuelle Darstellung
(Funktion) |
|
|
konvertiert ein
std::tm
Objekt in eine benutzerdefinierte textuelle Darstellung
(Funktion) |
|
|
(C++11)
|
formatiert und gibt einen Datums-/Zeitwert gemäß dem angegebenen Format aus
(Funktions-Template) |
|
C-Dokumentation
für
asctime
|
|