wcsftime
|
Definido en el encabezado
<wchar.h>
|
||
| (desde C95) | ||
Convierte la información de fecha y hora desde 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
bytes.
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 |
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, incluyendo 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
(C99) |
escribe el carácter de nueva línea | |
t
(C99) |
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
(C99) |
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
(C99) |
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
(C99) |
escribe el
año
como desplazamiento desde el período del calendario alternativo de la configuración regional
%EC
(dependiente de la configuración regional)
|
tm_year
|
C
(C99) |
escribe los primeros 2 dígitos del
año
como un número decimal (rango
[00,99]
)
|
tm_year
|
EC
(C99) |
escribe el nombre del año base (período) en la representación alternativa de la configuración regional, por ejemplo 平成 (era Heisei) en ja_JP |
tm_year
|
G
(C99) |
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
(C99) |
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
|
Ob
(C23) |
escribe el nombre del mes abreviado en la representación alternativa de la configuración regional |
tm_mon
|
h
(C99) |
sinónimo de
b
|
tm_mon
|
B
|
escribe el
nombre completo del mes
, ej.
October
(depende de la configuración regional)
|
tm_mon
|
OB
(C23) |
escribe el nombre completo del mes apropiado en la representación alternativa de la configuración regional |
tm_mon
|
m
|
escribe el
mes
como un número decimal (rango
[01,12]
)
|
tm_mon
|
Om
(C99) |
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
(C99) |
escribe la
semana del año
, como con
%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
(C99) |
escribe la
semana del año
, como con
%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
(C99) |
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
(C99) |
escribe la
semana del año
, como con
%V
, usando el sistema numérico alternativo, ej. 五十二 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 número decimal (rango
[01,31]
)
|
tm_mday
|
Od
(C99) |
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
(C99) |
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
(C99) |
escribe el
día del mes
basado en uno utilizando 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
(C99) |
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
(C99) |
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
(C99) |
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
(C99) |
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
(C99) |
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
(C99) |
escribe el minuto utilizando 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
(C99) |
escribe el segundo usando el sistema numérico alternativo, ej. 二十四 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
(C99) |
escribe la 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
(C99) |
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
(C99) |
escribe representación alternativa de tiempo (dependiente de la configuración regional) | todos |
D
(C99) |
equivalente a "%m/%d/%y" |
tm_mon
,
tm_mday
,
tm_year
|
F
(C99) |
equivalente a "%Y-%m-%d" (el formato de fecha ISO 8601) |
tm_mon
,
tm_mday
,
tm_year
|
r
(C99) |
escribe la hora en formato 12 horas localizado (dependiente de la configuración regional) |
tm_hour
,
tm_min
,
tm_sec
|
R
(C99) |
equivalente a "%H:%M" |
tm_hour
,
tm_min
|
T
(C99) |
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
(C99) |
escribe el
desplazamiento desde 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 count se alcanzó antes de que toda la cadena pudiera almacenarse, 0 es retornado y el contenido queda indefinido.
Ejemplo
#include <locale.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main(void) { wchar_t buff[40]; struct tm my_time = { .tm_year = 112, // = año 2012 .tm_mon = 9, // = 10º mes .tm_mday = 9, // = 9º día .tm_hour = 8, // = 8 horas .tm_min = 10, // = 10 minutos .tm_sec = 20 // = 20 segundos }; if (wcsftime(buff, sizeof buff, L"%A %c", &my_time)) printf("%ls\n", buff); else puts("wcsftime failed"); setlocale(LC_ALL, "ja_JP.utf8"); if (wcsftime(buff, sizeof buff, L"%A %c", &my_time)) printf("%ls\n", buff); else puts("wcsftime failed"); }
Salida:
Sunday Sun Oct 9 08:10:20 2012 日曜日 2012年10月09日 08時10分20秒
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.29.5.1 La función wcsftime (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.29.5.1 La función wcsftime (p: 230-231)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.29.5.1 La función wcsftime (p: 439-440)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.24.5.1 La función wcsftime (p: 385-386)
Véase también
|
convierte un objeto
tm
a representación textual personalizada
(función) |
|
|
Documentación de C++
para
wcsftime
|
|