|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <cwchar> | ||
std::size_t wcsftime(wchar_t* str,std::size_t count,constwchar_t* format,conststd::tm* time); | ||
Converts the date and time information from a given calendar timetime to a null-terminated wide character stringstr according toformat stringformat. Up tocount wide characters are written.
Contents |
| str | - | pointer to the first element of thewchar_t array for output |
| count | - | maximum number of wide characters to write |
| format | - | pointer to a null-terminated wide character string specifying theformat of conversion |
| time | - | pointer to the date and time information to be converted |
The format string consists of zero or more conversion specifiers and ordinary characters (except%). All ordinary characters, including the terminating null character, are copied to the output string without modification. Each conversion specification begins with% character, optionally followed byE orO modifier (ignored if unsupported by the locale), followed by the character that determines the behavior of the specifier. The following format specifiers are available:
| Conversion specifier | Explanation | Used fields |
|---|---|---|
% | writes literal%. The full conversion specification must be%%. | |
n(C++11) | writes newline character | |
t(C++11) | writes horizontal tab character | |
| Year | ||
Y | writesyear as a decimal number, e.g. 2017 | tm_year |
EY(C++11) | writesyear in the alternative representation, e.g.平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale | tm_year |
y | writes last 2 digits ofyear as a decimal number (range[00,99]) | tm_year |
Oy(C++11) | writes last 2 digits ofyear using the alternative numeric system, e.g. 十一 instead of 11 in ja_JP locale | tm_year |
Ey(C++11) | writesyear as offset from locale's alternative calendar period%EC (locale-dependent) | tm_year |
C(C++11) | writes first 2 digits ofyear as a decimal number (range[00,99]) | tm_year |
EC(C++11) | writes name of thebase year (period) in the locale's alternative representation, e.g. 平成 (Heisei era) in ja_JP | tm_year |
G(C++11) | writesISO 8601 week-based year, i.e. the year that contains the specified week. In ISO 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:
| tm_year,tm_wday,tm_yday |
g(C++11) | writes last 2 digits ofISO 8601 week-based year, i.e. the year that contains the specified week (range[00,99]).In ISO 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:
| tm_year,tm_wday,tm_yday |
| Month | ||
b | writesabbreviated month name, e.g.Oct (locale dependent) | tm_mon |
h(C++11) | synonym ofb | tm_mon |
B | writesfull month name, e.g.October (locale dependent) | tm_mon |
m | writesmonth as a decimal number (range[01,12]) | tm_mon |
Om(C++11) | writesmonth using the alternative numeric system, e.g. 十二 instead of 12 in ja_JP locale | tm_mon |
| Week | ||
U | writesweek of the year as a decimal number (Sunday is the first day of the week) (range[00,53]) | tm_year,tm_wday,tm_yday |
OU(C++11) | writesweek of the year, as by%U, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale | tm_year,tm_wday,tm_yday |
W | writesweek of the year as a decimal number (Monday is the first day of the week) (range[00,53]) | tm_year,tm_wday,tm_yday |
OW(C++11) | writesweek of the year, as by%W, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale | tm_year,tm_wday,tm_yday |
V(C++11) | writesISO 8601 week of the year (range[01,53]).In ISO 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:
| tm_year,tm_wday,tm_yday |
OV(C++11) | writesweek of the year, as by%V, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale | tm_year,tm_wday,tm_yday |
| Day of the year/month | ||
j | writesday of the year as a decimal number (range[001,366]) | tm_yday |
d | writesday of the month as a decimal number (range[01,31]) | tm_mday |
Od(C++11) | writes zero-basedday of the month using the alternative numeric system, e.g. 二十七 instead of 27 in ja_JP locale Single character is preceded by a space. | tm_mday |
e(C++11) | writesday of the month as a decimal number (range[1,31]).Single digit is preceded by a space. | tm_mday |
Oe(C++11) | writes one-basedday of the month using the alternative numeric system, e.g. 二十七 instead of 27 in ja_JP locale Single character is preceded by a space. | tm_mday |
| Day of the week | ||
a | writesabbreviated weekday name, e.g.Fri (locale dependent) | tm_wday |
A | writesfull weekday name, e.g.Friday (locale dependent) | tm_wday |
w | writesweekday as a decimal number, where Sunday is0 (range[0-6]) | tm_wday |
Ow(C++11) | writesweekday, where Sunday is0, using the alternative numeric system, e.g. 二 instead of 2 in ja_JP locale | tm_wday |
u(C++11) | writesweekday as a decimal number, where Monday is1 (ISO 8601 format) (range[1-7]) | tm_wday |
Ou(C++11) | writesweekday, where Monday is1, using the alternative numeric system, e.g. 二 instead of 2 in ja_JP locale | tm_wday |
| Hour, minute, second | ||
H | writeshour as a decimal number, 24 hour clock (range[00-23]) | tm_hour |
OH(C++11) | writeshour from 24-hour clock using the alternative numeric system, e.g. 十八 instead of 18 in ja_JP locale | tm_hour |
I | writeshour as a decimal number, 12 hour clock (range[01,12]) | tm_hour |
OI(C++11) | writeshour from 12-hour clock using the alternative numeric system, e.g. 六 instead of 06 in ja_JP locale | tm_hour |
M | writesminute as a decimal number (range[00,59]) | tm_min |
OM(C++11) | writesminute using the alternative numeric system, e.g. 二十五 instead of 25 in ja_JP locale | tm_min |
S | writessecond as a decimal number (range[00,60]) | tm_sec |
OS(C++11) | writessecond using the alternative numeric system, e.g. 二十四 instead of 24 in ja_JP locale | tm_sec |
| Other | ||
c | writesstandard date and time string, e.g.Sun Oct 17 04:41:13 2010 (locale dependent) | all |
Ec(C++11) | writesalternative date and time string, e.g. using 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale | all |
x | writes localizeddate representation (locale dependent) | all |
Ex(C++11) | writesalternative date representation, e.g. using 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale | all |
X | writes localizedtime representation, e.g. 18:40:20 or 6:40:20 PM (locale dependent) | all |
EX(C++11) | writesalternative time representation (locale dependent) | all |
D(C++11) | equivalent to"%m/%d/%y" | tm_mon,tm_mday,tm_year |
F(C++11) | equivalent to"%Y-%m-%d" (the ISO 8601 date format) | tm_mon,tm_mday,tm_year |
r(C++11) | writes localized12-hour clock time (locale dependent) | tm_hour,tm_min,tm_sec |
R(C++11) | equivalent to"%H:%M" | tm_hour,tm_min |
T(C++11) | equivalent to"%H:%M:%S" (the ISO 8601 time format) | tm_hour,tm_min,tm_sec |
p | writes localizeda.m. or p.m. (locale dependent) | tm_hour |
z(C++11) | writesoffset from UTC in the ISO 8601 format (e.g.-0430), or no characters if the time zone information is not available | tm_isdst |
Z | writes locale-dependenttime zone name or abbreviation, or no characters if the time zone information is not available | tm_isdst |
Number of wide characters written into the wide character array pointed to bystr not including the terminatingL'\0' on success. Ifcount was reached before the entire string could be stored,0 is returned and the contents are undefined.
#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';}
Possible output:
火曜日 2011年12月27日 17時43分13秒
| converts astd::tm object to custom textual representation (function)[edit] | |
(C++11) | formats and outputs a date/time value according to the specified format (function template)[edit] |
C documentation forwcsftime | |