std:: wcsftime
|
Definido en el encabezado
<cwchar>
|
||
|
std::
size_t
wcsftime
(
wchar_t
*
str,
std::
size_t
count,
const
wchar_t
*
format,
const
std::
tm
*
time
)
;
|
||
Convierte la información de fecha y hora de un tiempo de calendario dado time a una cadena de caracteres anchos terminada en nulo str de acuerdo con la cadena de formato format . Se escriben hasta count caracteres anchos.
Contenidos |
Parámetros
| str | - | puntero al primer elemento del wchar_t array para salida |
| count | - | número máximo de caracteres anchos a escribir |
| format | - | puntero a una cadena de caracteres anchos terminada en nulo que especifica el formato de conversión |
| time | - | puntero a la información de fecha y hora a convertir |
Cadena de formato
La cadena de formato consiste en cero o más especificadores de conversión y caracteres ordinarios (excepto
%
). Todos los caracteres ordinarios, incluido el carácter nulo terminador, se copian a la cadena de salida sin modificación. Cada especificación de conversión comienza con el carácter
%
, opcionalmente seguido por el modificador
E
o
O
(ignorado si no es compatible con la configuración regional), seguido del carácter que determina el comportamiento del especificador. Los siguientes especificadores de formato están disponibles:
|
Especificador
de conversión |
Explicación | Campos utilizados |
|---|---|---|
%
|
escribe literalmente
%
. La especificación de conversión completa debe ser
%%
.
|
|
n
(C++11) |
escribe el carácter de nueva línea | |
t
(C++11) |
escribe el carácter de tabulación horizontal | |
| Año | ||
Y
|
escribe el año como un número decimal, ej. 2017 |
tm_year
|
EY
(C++11) |
escribe el año en representación alternativa, ej. 平成23年 (año Heisei 23) en lugar de 2011年 (año 2011) en la configuración regional ja_JP |
tm_year
|
y
|
escribe los últimos 2 dígitos del
año
como número decimal (rango
[00,99]
)
|
tm_year
|
Oy
(C++11) |
escribe los últimos 2 dígitos del año usando el sistema numérico alternativo, por ejemplo 十一 en lugar de 11 en la configuración regional ja_JP |
tm_year
|
Ey
(C++11) |
escribe el
año
como desplazamiento desde el período del calendario alternativo de la localización
%EC
(dependiente de la localización)
|
tm_year
|
C
(C++11) |
escribe los primeros 2 dígitos del
año
como un número decimal (rango
[00,99]
)
|
tm_year
|
EC
(C++11) |
escribe el nombre del año base (periodo) en la representación alternativa de la configuración regional, por ejemplo 平成 (era Heisei) en ja_JP |
tm_year
|
G
(C++11) |
escribe el
año basado en semanas ISO 8601
, es decir, el año que contiene la semana especificada.
En ISO 8601 las semanas comienzan el lunes y la primera semana del año debe cumplir los siguientes requisitos:
|
tm_year
,
tm_wday
,
tm_yday
|
g
(C++11) |
escribe los últimos 2 dígitos del
año basado en semanas ISO 8601
, es decir, el año que contiene la semana especificada (rango
[00,99]
).
En ISO 8601 las semanas comienzan el lunes y la primera semana del año debe cumplir los siguientes requisitos:
|
tm_year
,
tm_wday
,
tm_yday
|
| Mes | ||
b
|
escribe el
nombre del mes abreviado
, ej.
Oct
(dependiente de la configuración regional)
|
tm_mon
|
h
(C++11) |
sinónimo de
b
|
tm_mon
|
B
|
escribe el
nombre completo del mes
, ej.
October
(depende de la configuración regional)
|
tm_mon
|
m
|
escribe el
mes
como un número decimal (rango
[01,12]
)
|
tm_mon
|
Om
(C++11) |
escribe el mes usando el sistema numérico alternativo, por ejemplo 十二 en lugar de 12 en la configuración regional ja_JP |
tm_mon
|
| Semana | ||
U
|
escribe la
semana del año
como número decimal (el domingo es el primer día de la semana) (rango
[00,53]
)
|
tm_year
,
tm_wday
,
tm_yday
|
OU
(C++11) |
escribe la
semana del año
, como por
%U
, usando el sistema numérico alternativo, ej. 五十二 en lugar de 52 en la configuración regional ja_JP
|
tm_year
,
tm_wday
,
tm_yday
|
W
|
escribe la
semana del año
como número decimal (el lunes es el primer día de la semana) (rango
[00,53]
)
|
tm_year
,
tm_wday
,
tm_yday
|
OW
(C++11) |
escribe la
semana del año
, como por
%W
, usando el sistema numérico alternativo, ej. 五十二 en lugar de 52 en la configuración regional ja_JP
|
tm_year
,
tm_wday
,
tm_yday
|
V
(C++11) |
escribe la
semana ISO 8601 del año
(rango
[01,53]
).
En ISO 8601 las semanas comienzan el lunes y la primera semana del año debe cumplir los siguientes requisitos:
|
tm_year
,
tm_wday
,
tm_yday
|
OV
(C++11) |
escribe la
semana del año
, como por
%V
, usando el sistema numérico alternativo, por ejemplo 五十二 en lugar de 52 en la configuración regional ja_JP
|
tm_year
,
tm_wday
,
tm_yday
|
| Día del año/mes | ||
j
|
escribe el
día del año
como un número decimal (rango
[001,366]
)
|
tm_yday
|
d
|
escribe el
día del mes
como un número decimal (rango
[01,31]
)
|
tm_mday
|
Od
(C++11) |
escribe el
día del mes basado en cero
usando el sistema numérico alternativo, por ejemplo, 二十七 en lugar de 27 en la configuración regional ja_JP
Un solo carácter va precedido por un espacio. |
tm_mday
|
e
(C++11) |
escribe el
día del mes
como un número decimal (rango
[1,31]
).
Los dígitos individuales van precedidos por un espacio. |
tm_mday
|
Oe
(C++11) |
escribe el
día del mes
basado en uno usando el sistema numérico alternativo, por ejemplo 二十七 en lugar de 27 en la configuración regional ja_JP
Un solo carácter va precedido por un espacio. |
tm_mday
|
| Día de la semana | ||
a
|
escribe el
nombre abreviado del día de la semana
, ej.
Fri
(dependiente de la configuración regional)
|
tm_wday
|
A
|
escribe el
nombre completo del día de la semana
, ej.
Friday
(dependiente de la configuración regional)
|
tm_wday
|
w
|
escribe el
día de la semana
como un número decimal, donde el domingo es
0
(rango
[0-6]
)
|
tm_wday
|
Ow
(C++11) |
escribe el
día de la semana
, donde el domingo es
0
, usando el sistema numérico alternativo, por ejemplo 二 en lugar de 2 en la configuración regional ja_JP
|
tm_wday
|
u
(C++11) |
escribe el
día de la semana
como un número decimal, donde el lunes es
1
(formato ISO 8601) (rango
[1-7]
)
|
tm_wday
|
Ou
(C++11) |
escribe el
día de la semana
, donde el lunes es
1
, usando el sistema numérico alternativo, por ejemplo 二 en lugar de 2 en la configuración regional ja_JP
|
tm_wday
|
| Hora, minuto, segundo | ||
H
|
escribe la
hora
como número decimal, reloj de 24 horas (rango
[00-23]
)
|
tm_hour
|
OH
(C++11) |
escribe la hora del reloj de 24 horas utilizando el sistema numérico alternativo, por ejemplo 十八 en lugar de 18 en la configuración regional ja_JP |
tm_hour
|
I
|
escribe
hour
como un número decimal, reloj de 12 horas (rango
[01,12]
)
|
tm_hour
|
OI
(C++11) |
escribe la hora del reloj de 12 horas usando el sistema numérico alternativo, por ejemplo 六 en lugar de 06 en la configuración regional ja_JP |
tm_hour
|
M
|
escribe el
minuto
como un número decimal (rango
[00,59]
)
|
tm_min
|
OM
(C++11) |
escribe el minuto usando el sistema numérico alternativo, por ejemplo 二十五 en lugar de 25 en la configuración regional ja_JP |
tm_min
|
S
|
escribe el
segundo
como un número decimal (rango
[00,60]
)
|
tm_sec
|
OS
(C++11) |
escribe el segundo usando el sistema numérico alternativo, por ejemplo 二十四 en lugar de 24 en la configuración regional ja_JP |
tm_sec
|
| Otros | ||
c
|
escribe
cadena de fecha y hora estándar
, ej.
Sun Oct 17 04:41:13 2010
(dependiente de la configuración regional)
|
todos |
Ec
(C++11) |
escribe cadena de fecha y hora alternativa , por ejemplo usando 平成23年 (año Heisei 23) en lugar de 2011年 (año 2011) en la configuración regional ja_JP | todos |
x
|
escribe representación de fecha localizada (dependiente de la configuración regional) | todos |
Ex
(C++11) |
escribe representación de fecha alternativa , por ejemplo usando 平成23年 (año Heisei 23) en lugar de 2011年 (año 2011) en la configuración regional ja_JP | todos |
X
|
escribe la representación localizada de la hora , por ejemplo 18:40:20 o 6:40:20 PM (dependiente de la configuración regional) | todos |
EX
(C++11) |
escribe representación alternativa de tiempo (dependiente de la configuración regional) | todos |
D
(C++11) |
equivalente a "%m/%d/%y" |
tm_mon
,
tm_mday
,
tm_year
|
F
(C++11) |
equivalente a "%Y-%m-%d" (el formato de fecha ISO 8601) |
tm_mon
,
tm_mday
,
tm_year
|
r
(C++11) |
escribe la hora en formato 12 horas localizado (dependiente de la configuración regional) |
tm_hour
,
tm_min
,
tm_sec
|
R
(C++11) |
equivalente a "%H:%M" |
tm_hour
,
tm_min
|
T
(C++11) |
equivalente a "%H:%M:%S" (el formato de hora ISO 8601) |
tm_hour
,
tm_min
,
tm_sec
|
p
|
escribe a.m. o p.m. localizado (dependiente de la configuración regional) |
tm_hour
|
z
(C++11) |
escribe el
desplazamiento de UTC
en formato ISO 8601 (por ejemplo
-0430
), o ningún carácter si la información de zona horaria no está disponible
|
tm_isdst
|
Z
|
escribe el nombre o abreviatura de la zona horaria dependiente de la configuración regional , o ningún carácter si la información de la zona horaria no está disponible |
tm_isdst
|
Valor de retorno
Número de caracteres anchos escritos en el array de caracteres anchos apuntado por str sin incluir el carácter terminador L ' \0 ' en caso de éxito. Si se alcanzó count antes de que toda la cadena pudiera almacenarse, se retorna 0 y el contenido queda indefinido.
Ejemplo
#include <ctime> #include <cwchar> #include <iostream> #include <locale> int main() { std::locale::global(std::locale("ja_JP.utf8")); std::time_t t = std::time(nullptr); wchar_t wstr[100]; if (std::wcsftime(wstr, 100, L"%A %c", std::localtime(&t))) std::wcout << wstr << '\n'; }
Salida posible:
火曜日 2011年12月27日 17時43分13秒
Véase también
|
convierte un objeto
std::tm
a representación textual personalizada
(función) |
|
|
(C++11)
|
formatea y emite un valor de fecha/hora según el formato especificado
(plantilla de función) |
|
Documentación de C
para
wcsftime
|
|