std::strftime

来自cppreference.com
< cpp‎ | chrono‎ | c

 
 
实用工具库
类型的支持 (basic types, RTTI, type traits)
动态内存管理
错误处理
程序实用工具
可变参数函数
日期和时间
函数对象
initializer_list(C++11)
bitset
hash(C++11)
关系运算符
原文:
Relational operators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
对和元组
原文:
Pairs and tuples
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
pair
tuple(C++11)
apply(C++17)
make_from_tuple(C++17)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
integer_sequence(C++14)
交换,前进和移动
原文:
Swap, forward and move
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
swap
exchange(C++14)
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
类型操作
原文:
Type operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
declval(C++11)
as_const(C++17)
 
 
C-风格的日期和时间工具
功能
原文:
Functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
时间操作
原文:
Time manipulation
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
difftime
time
clock
格式转换
原文:
Format conversions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
asctime
ctime
strftime
wcsftime
gmtime
localtime
mktime
常量
原文:
Constants
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
CLOCKS_PER_SEC
类型
原文:
Types
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
tm
time_t
clock_t
 
定义于头文件 <ctime>
std::size_t strftime( char* str, std::size_t count, const char* format, std::tm* time );
转换的日期和时间信息从一个给定的日历时间timenull结尾的多字节字符串str根据格式字符串format的。 count字节写的
原文:
Converts the date and time information from a given calendar time time to a null-terminated multibyte character string str according to format string format. Up to count bytes are written.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

str -
指针,用于输出char数组的第一个元素
原文:
pointer to the first element of the char array for output
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
count -
要写入的字节的最大数量
原文:
maximum number of bytes to write
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
format -
指针null结尾的多字节字符的字符串,该字符串指定的格式转换。

格式字符串由零或更多个限定符和通常字符(除%)构成。所有通常字符,包括空终止字符,都会被不加修改地复制到输出字符串。每个转换限定符都以%字符为首,可选地跟随EO修饰符(若本地环境不支持则忽略),后随决定修饰符行为的字符。下列修饰符格式是可用的:

转换
限定符
解释 使用的域
% 写字面的%。完整转换限定必须是%%
n
(C++11)
写换行符
t
(C++11)
写水平制表符
年份
Y 以4位十进制数写年份 tm_year
EY
(C++11)
以另一种方式写年份。例如在ja_JP本地环境中,以“平成23年”取代“2011年”。 tm_year
y 年份的末2位十进制数(范围[00,99])。 tm_year
Oy
(C++11)
以另一种数字系统写年份的末2位数字。例如在ja_JP本地环境中以“十一”取代“11”。 tm_year
Ey
(C++11)
年份写作自本地环境的另一种时期%EC的偏移(本地环境依赖)。 tm_year
C
(C++11)
年份的首2位十进制数(范围[00,99])。 tm_year
EC
(C++11)
以本地环境的另一种展现写年份基底(时期),例如ja_JP中的“平成”。 tm_year
G
(C++11)
基于ISO 8601的年份,即是包含指定星期的年份。

在IS0 8601中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含1月4日
  • 包含一年的首个星期四
tm_year, tm_wday, tm_yday
g
(C++11)
基于ISO 8601的年份,即是包含指定星期年份,的后2位数(范围[00,99])。

在IS0 8601中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含1月4日
  • 包含一年的首个星期四
tm_year, tm_wday, tm_yday
月份
b 缩略月份名,例如Oct(本地环境依赖)。 tm_mon
h
(C++11)
b同意。 tm_mon
B 完整月份名,例如October(本地环境依赖)。 tm_mon
m 月份写作十进制数(范围[01,12])。 tm_mon
Om
(C++11)
以另一种数字系统写月份。例如在ja_JP本地环境中,以“十二”取代“12”。 tm_mon
星期
U 以十进制数写年的第几个星期(星期日是星期的首日)(范围[00,53])。 tm_year, tm_wday, tm_yday
OU
(C++11)
以另一种数值系统写像用%U一样的年的第几个星期。例如“五十二”在ja_JP本地环境中取代“52”。 tm_year, tm_wday, tm_yday
W 以十进制数写年的第几个星期(星期一是星期的首日)(范围[00,53])。 tm_year, tm_wday, tm_yday
OW
(C++11)
以另一种数值系统写像用%W一样的年的第几个星期。例如“五十二”在ja_JP本地环境中取代“52”。 tm_year, tm_wday, tm_yday
V
(C++11)
ISO 8601的年的第几个星期(范围[00,53])。

在IS0 8601中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含1月4日
  • 包含一年的首个星期四
tm_year, tm_wday, tm_yday
OV
(C++11)
以另一种数值系统写像用%V一样的年的第几个星期。例如“五十二”在ja_JP本地环境中取代“52”。 tm_year, tm_wday, tm_yday
年/月之日
j 以十进制数写年的第几日(范围[001,366])。 tm_yday
d 以十进制数写月的第几日(范围[01,31])。 tm_mday
Od
(C++11)
以另一种数字系统写零基的月的第几日。例如在ja_JP本地化境中“二十七”取代“27”。

单字符前加空格。

tm_mday
e
(C++11)
以十进制数写月的第几日(范围[01,31])。

单数字前加空格。

tm_mday
Oe
(C++11)
以另一种数字系统写一基的月的第几日。例如在ja_JP本地化境中“二十七”取代“27”。

单字符前加空格。

tm_mday
星期之日
a 缩略的星期日期名,例如Fri(本地环境依赖)。 tm_wday
A 完整的星期日期名,例如Friday(本地环境依赖)。 tm_wday
w 以十进制数写星期日期,其中星期日是0(范围[0-6])。 tm_wday
Ow
(C++11)
用另一种数字系统写星期日期,其中星期日是0。例如在ja_JP本地环境中“二”取代“2”。 tm_wday
u
(C++11)
十进制数写星期日期,其中星期一是1(ISO 8601格式)(范围[1-7])。 tm_wday
Ou
(C++11)
用另一种数字系统写星期日期,其中星期一是1。例如在ja_JP本地环境中“二”取代“2”。 tm_wday
时、分、秒
H 以十进制数写,24小时制(范围[00-23])。 tm_hour
OH
(C++11)
以另一种数字系统写24小时制的。例如在ja_JP本地环境中“十八”取代“18”。 tm_hour
I 以十进制数写,12小时制(范围[01,12])。 tm_hour
OI
(C++11)
以另一种数字系统写12小时制的。例如在ja_JP本地环境中“六”取代“6”。 tm_hour
M 以十进制数写(范围[00,59])。 tm_min
OM
(C++11)
以另一种数字系统写。例如在ja_JP本地环境中“二十五”取代“25”。 tm_min
S [00,60])。 tm_sec
OS
(C++11)
以另一种数字系统写。例如在ja_JP本地环境中“二十四”取代“24”。 tm_sec
其他
c 标准日期时间字符串。例如Sun Oct 17 04:41:13 2010(本地环境依赖)。 全部
Ec
(C++11)
另一种日期时间字符串。例如在ja_JP本地环境中用“平成23年”取代“2011年”。 全部
x 写本地化的日期展示(本地环境依赖)。 全部
Ex
(C++11)
另一种日期展示。例如在ja_JP本地环境中“平成23年”取代“2011年”。 全部
X 写本地化的时间展示(本地环境依赖)。 全部
EX
(C++11)
另一种时间展示(本地环境依赖)。 全部
D
(C++11)
等价于"%m/%d/%y" tm_mon, tm_mday, tm_year
F
(C++11)
等价于"%Y-%m-%d"(ISO 8601日期格式)。 tm_mon, tm_mday, tm_year
r
(C++11)
写本地化的12小时制时间(本地环境依赖)。 tm_hour, tm_min, tm_sec
R
(C++11)
等价于"%H:%M" tm_hour, tm_min
T
(C++11)
等价于"%H:%M:%S"(ISO 8601时间格式)。 tm_hour, tm_min, tm_sec
p 写本地化的a.m.p.m.(本地环境依赖)。 tm_hour
z
(C++11)
以ISO 8601格式(例如-0430)写从UTC的偏移,或者倘若时区信息不可用则不写字符。 tm_isdst
Z 时区名或缩写,或者倘若时区信息不可用则不写字符(本地环境依赖)。 tm_isdst
原文:
pointer to a null-terminated multibyte character string specifying the format of conversion.

格式字符串由零或更多个限定符和通常字符(除%)构成。所有通常字符,包括空终止字符,都会被不加修改地复制到输出字符串。每个转换限定符都以%字符为首,可选地跟随EO修饰符(若本地环境不支持则忽略),后随决定修饰符行为的字符。下列修饰符格式是可用的:

转换
限定符
解释 使用的域
% 写字面的%。完整转换限定必须是%%
n
(C++11)
写换行符
t
(C++11)
写水平制表符
年份
Y 以4位十进制数写年份 tm_year
EY
(C++11)
以另一种方式写年份。例如在ja_JP本地环境中,以“平成23年”取代“2011年”。 tm_year
y 年份的末2位十进制数(范围[00,99])。 tm_year
Oy
(C++11)
以另一种数字系统写年份的末2位数字。例如在ja_JP本地环境中以“十一”取代“11”。 tm_year
Ey
(C++11)
年份写作自本地环境的另一种时期%EC的偏移(本地环境依赖)。 tm_year
C
(C++11)
年份的首2位十进制数(范围[00,99])。 tm_year
EC
(C++11)
以本地环境的另一种展现写年份基底(时期),例如ja_JP中的“平成”。 tm_year
G
(C++11)
基于ISO 8601的年份,即是包含指定星期的年份。

在IS0 8601中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含1月4日
  • 包含一年的首个星期四
tm_year, tm_wday, tm_yday
g
(C++11)
基于ISO 8601的年份,即是包含指定星期年份,的后2位数(范围[00,99])。

在IS0 8601中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含1月4日
  • 包含一年的首个星期四
tm_year, tm_wday, tm_yday
月份
b 缩略月份名,例如Oct(本地环境依赖)。 tm_mon
h
(C++11)
b同意。 tm_mon
B 完整月份名,例如October(本地环境依赖)。 tm_mon
m 月份写作十进制数(范围[01,12])。 tm_mon
Om
(C++11)
以另一种数字系统写月份。例如在ja_JP本地环境中,以“十二”取代“12”。 tm_mon
星期
U 以十进制数写年的第几个星期(星期日是星期的首日)(范围[00,53])。 tm_year, tm_wday, tm_yday
OU
(C++11)
以另一种数值系统写像用%U一样的年的第几个星期。例如“五十二”在ja_JP本地环境中取代“52”。 tm_year, tm_wday, tm_yday
W 以十进制数写年的第几个星期(星期一是星期的首日)(范围[00,53])。 tm_year, tm_wday, tm_yday
OW
(C++11)
以另一种数值系统写像用%W一样的年的第几个星期。例如“五十二”在ja_JP本地环境中取代“52”。 tm_year, tm_wday, tm_yday
V
(C++11)
ISO 8601的年的第几个星期(范围[00,53])。

在IS0 8601中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含1月4日
  • 包含一年的首个星期四
tm_year, tm_wday, tm_yday
OV
(C++11)
以另一种数值系统写像用%V一样的年的第几个星期。例如“五十二”在ja_JP本地环境中取代“52”。 tm_year, tm_wday, tm_yday
年/月之日
j 以十进制数写年的第几日(范围[001,366])。 tm_yday
d 以十进制数写月的第几日(范围[01,31])。 tm_mday
Od
(C++11)
以另一种数字系统写零基的月的第几日。例如在ja_JP本地化境中“二十七”取代“27”。

单字符前加空格。

tm_mday
e
(C++11)
以十进制数写月的第几日(范围[01,31])。

单数字前加空格。

tm_mday
Oe
(C++11)
以另一种数字系统写一基的月的第几日。例如在ja_JP本地化境中“二十七”取代“27”。

单字符前加空格。

tm_mday
星期之日
a 缩略的星期日期名,例如Fri(本地环境依赖)。 tm_wday
A 完整的星期日期名,例如Friday(本地环境依赖)。 tm_wday
w 以十进制数写星期日期,其中星期日是0(范围[0-6])。 tm_wday
Ow
(C++11)
用另一种数字系统写星期日期,其中星期日是0。例如在ja_JP本地环境中“二”取代“2”。 tm_wday
u
(C++11)
十进制数写星期日期,其中星期一是1(ISO 8601格式)(范围[1-7])。 tm_wday
Ou
(C++11)
用另一种数字系统写星期日期,其中星期一是1。例如在ja_JP本地环境中“二”取代“2”。 tm_wday
时、分、秒
H 以十进制数写,24小时制(范围[00-23])。 tm_hour
OH
(C++11)
以另一种数字系统写24小时制的。例如在ja_JP本地环境中“十八”取代“18”。 tm_hour
I 以十进制数写,12小时制(范围[01,12])。 tm_hour
OI
(C++11)
以另一种数字系统写12小时制的。例如在ja_JP本地环境中“六”取代“6”。 tm_hour
M 以十进制数写(范围[00,59])。 tm_min
OM
(C++11)
以另一种数字系统写。例如在ja_JP本地环境中“二十五”取代“25”。 tm_min
S [00,60])。 tm_sec
OS
(C++11)
以另一种数字系统写。例如在ja_JP本地环境中“二十四”取代“24”。 tm_sec
其他
c 标准日期时间字符串。例如Sun Oct 17 04:41:13 2010(本地环境依赖)。 全部
Ec
(C++11)
另一种日期时间字符串。例如在ja_JP本地环境中用“平成23年”取代“2011年”。 全部
x 写本地化的日期展示(本地环境依赖)。 全部
Ex
(C++11)
另一种日期展示。例如在ja_JP本地环境中“平成23年”取代“2011年”。 全部
X 写本地化的时间展示(本地环境依赖)。 全部
EX
(C++11)
另一种时间展示(本地环境依赖)。 全部
D
(C++11)
等价于"%m/%d/%y" tm_mon, tm_mday, tm_year
F
(C++11)
等价于"%Y-%m-%d"(ISO 8601日期格式)。 tm_mon, tm_mday, tm_year
r
(C++11)
写本地化的12小时制时间(本地环境依赖)。 tm_hour, tm_min, tm_sec
R
(C++11)
等价于"%H:%M" tm_hour, tm_min
T
(C++11)
等价于"%H:%M:%S"(ISO 8601时间格式)。 tm_hour, tm_min, tm_sec
p 写本地化的a.m.p.m.(本地环境依赖)。 tm_hour
z
(C++11)
以ISO 8601格式(例如-0430)写从UTC的偏移,或者倘若时区信息不可用则不写字符。 tm_isdst
Z 时区名或缩写,或者倘若时区信息不可用则不写字符(本地环境依赖)。 tm_isdst
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 返回值

所指向的字符数组写入的字节数str不包括终止'\0'成功。 count之前达成的整个字符串可以存储,0返回的内容是不确定的.....
原文:
The number of bytes written into the character array pointed to by str not including the terminating '\0' on success. If count was reached before the entire string could be stored, 0 is returned and the contents are undefined.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 示例

#include <ctime>
#include <iostream>
#include <locale>
 
int main()
{
    std::locale::global(std::locale("ja_JP.utf8"));
    std::time_t t = std::time(NULL);
    char mbstr[100];
    if (std::strftime(mbstr, 100, "%A %c", std::localtime(&t))) {
        std::cout << mbstr << '\n';
    }
}

输出:

火曜日 2011年12月27日 17時39分03秒

[编辑] 另请参阅

一个tm对象转换为文本表示
原文:
converts a tm object to a textual representation
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
一个time_t对象转换为文本表示
原文:
converts a time_t object to a textual representation
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
自定义的宽字符串的文字表述转换为tm对象
原文:
converts a tm object to custom wide string textual representation
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
按指定的格式,格式化并输出日期/时间值
原文:
formats and outputs a date/time value according to the specified format
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
strftimeC文档