std:: asctime
|
Definido en el encabezado
<ctime>
|
||
|
char
*
asctime
(
const
std::
tm
*
time_ptr
)
;
|
||
Convierte el tiempo de calendario dado std::tm a una representación textual de la siguiente forma fija de 25 caracteres: Www Mmm dd hh : mm : ss yyyy\n .
-
Www- día de la semana abreviado en inglés de tres letras desde time_ptr - > tm_wday , uno deMon,Tue,Wed,Thu,Fri,Sat,Sun. -
Mmm- nombre del mes abreviado en inglés de tres letras desde time_ptr - > tm_mon , uno deJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec. -
dd- día del mes de 2 dígitos desde timeptr - > tm_mday como si fuera impreso por sprintf usando % 2d . -
hh- hora de 2 dígitos desde timeptr - > tm_hour como si fuera impreso por sprintf usando % .2d . -
mm- minuto de 2 dígitos desde timeptr - > tm_min como si fuera impreso por sprintf usando % .2d . -
ss- segundo de 2 dígitos desde timeptr - > tm_sec como si fuera impreso por sprintf usando % .2d . -
yyyy- año de 4 dígitos desde timeptr - > tm_year + 1900 como si fuera impreso por sprintf usando % 4d .
El comportamiento es indefinido si algún miembro de * time_ptr está fuera de su rango normal.
El comportamiento es indefinido si el año calendario indicado por time_ptr - > tm_year tiene más de 4 dígitos o es menor que el año 1000.
La función no admite localización, y el carácter de nueva línea no puede eliminarse.
La función modifica el almacenamiento estático y no es segura para hilos.
Contenidos |
Parámetros
| time_ptr | - | puntero a un std::tm objeto que especifica el tiempo a imprimir |
Valor de retorno
Puntero a una cadena de caracteres estática terminada en nulo que contiene la representación textual de fecha y hora. La cadena puede ser compartida entre
std::asctime
y
std::ctime
, y puede ser sobrescrita en cada invocación de cualquiera de estas funciones.
Notas
Esta función retorna un puntero a datos estáticos y no es segura para hilos. POSIX marca esta función como obsoleta y recomienda en su lugar
std::strftime
dependiente de la configuración regional. En
std::locale
("C")
la cadena de formato
std::strftime
"%c
\n
"
será una coincidencia exacta con la salida de
std::asctime
, mientras que en otras configuraciones regionales la cadena de formato
"%a %b %e %H:%M:%S %Y
\n
"
será una coincidencia potencialmente más cercana pero no siempre exacta.
POSIX limita los comportamientos indefinidos solo a los casos cuando la cadena de salida sería más larga de 25 caracteres, cuando
timeptr->tm_wday
o
timeptr->tm_mon
no están dentro de los rangos esperados, o cuando
timeptr->tm_year
excede
INT_MAX
-
1990
.
Algunas implementaciones manejan timeptr - > tm_mday == 0 como si significara el último día del mes anterior.
Ejemplo
#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'; } }
Salida posible:
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
Véase también
|
convierte un objeto
std::time_t
a una representación textual
(función) |
|
|
convierte un objeto
std::tm
a una representación textual personalizada
(función) |
|
|
(C++11)
|
formatea y emite un valor de fecha/hora de acuerdo al formato especificado
(plantilla de función) |
|
Documentación de C
para
asctime
|
|