template< class CharT > 
/*unspecified*/ put_time( const std::tm* tmb, const CharT* fmt );  | 
   | 
 (C++11 起)  | 
 |  |  | 
用于表达式 out << put_time(tmb, fmt) 时,按照格式字符串 fmt ,按照输出流 out 中当前感染的 locale 的 std::time_put 平面,转换来自给定的日历时间 tmb 的日期和时间信息为字符串,如同通过调用 std::strftime 、 std::wcsftime 或模拟(取决于 CharT )。
参数
|   tmb
 | 
 -
 | 
 指向从 localtime() 或 gmtime() 获得的日历时间结构体的指针
 | 
|   fmt
 | 
 -
 | 
 指向指定转换格式的空终止 CharT 串的指针。
 格式字符串由零或更多个说明符和通常字符(除 % )构成。所有通常字符,包括空终止字符,都会被复制到输出字符串而不加修改。每个转换说明符都始于 % 字符,可选地跟随 E 或 O 修饰符(若本地环境不支持则忽略),后随决定修饰符行为的字符。下列修饰符格式可用:
 
 转换 说明符
 | 
 解释
 | 
 使用的域
 |  
 %
 | 
 写字面的 % 。完整转换说明必须是 %% 。
 | 
 |  
 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 中星期以星期一开始,而且一年的首星期必须满足下列要求:
 
 | 
 tm_year, tm_wday, tm_yday
 |  
 g (C++11)
 | 
 写基于 ISO 8601 的年,即是包含指定星期年份,的后 2 位数(范围 [00,99] )。
IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:
 
 | 
 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 中星期以星期一开始,而且一年的首星期必须满足下列要求:
 
 | 
 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
 | 
 写本地化的时间表示,例如 18:40:20 或 6:40:20 PM (本地环境依赖)。
 | 
 全部
 |  
 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
 |   
 
 
 | 
返回值
返回为指定类型的对象,使得若 out 为 std::basic_ostream<CharT, Traits> 类型输出流的名称,则表达式 out << put_time(tmb, fmt) 表现为如同执行下列代码:
typedef std::ostreambuf_iterator<CharT, Traits> Iter;
typedef std::time_put<CharT, Iter> TimePut;
const TimePut& tp = std::use_facet<TimePut>(out.getloc());
const Iter end = tp.put(Iter(out.rdbuf()), out, out.fill(), tmb, fmt, fmt + Traits::length(fmt));
if (end.failed())
    out.setstate(std::ios_base::badbit);
示例
输出:
ru_RU: Ср. 28 дек. 2011 10:21:16 EST
ja_JP: 2011年12月28日 10時21分16秒 EST
  
 
参阅
|   
 | 
  格式化 std::tm 内容为字符序列以输出   (类模板)  | 
|   
 | 
  剖析指定格式的日期/时间值   (函数模板)  | 
|   
 | 
  转换 tm 对象到自定义的文本表示   (函数)  | 
|   
 | 
  转换 tm 对象为定制的宽字符串文本表示   (函数)  |