564 lines
41 KiB
HTML
564 lines
41 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
|
|
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>std::time_put<CharT,OutputIt>::put, std::time_put<CharT,OutputIt>::do_put</title>
|
|
<link rel="stylesheet" href="ext.css" />
|
|
<link rel="stylesheet" href="site_modules.css" />
|
|
</head>
|
|
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_locale_time_put_put skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">std::time_put<CharT,OutputIt>::</span>put, <span style="font-size:0.7em; line-height:130%">std::time_put<CharT,OutputIt>::</span>do_put</h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-locale.html">locale</a>‎ | <a href="cpp-locale-time_put.html">time put</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dsc-header">
|
|
<td>
|
|
<div>定义于头文件 <code><a href="cpp-header-locale.html"><locale></a></code></div>
|
|
</td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">public</span><span class="sy4">:</span><br /></span>
|
|
<p>iter_type put<span class="br0">(</span> iter_type out, <a href="cpp-io-ios_base.html"><span class="kw1669">std::<span class="me2">ios_base</span></span></a><span class="sy3">&</span> str,<br />
|
|
char_type fill, <span class="kw4">const</span> <a href="cpp-chrono-c-tm.html"><span class="kw1023">std::<span class="me2">tm</span></span></a><span class="sy2">*</span> t,<br /></p>
|
|
<span class="kw4">const</span> CharT<span class="sy2">*</span> fmtbeg, <span class="kw4">const</span> CharT<span class="sy2">*</span> fmtend <span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></div>
|
|
</td>
|
|
<td>(1)</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">public</span><span class="sy4">:</span><br /></span>
|
|
<p>iter_type put<span class="br0">(</span> iter_type out, <a href="cpp-io-ios_base.html"><span class="kw1669">std::<span class="me2">ios_base</span></span></a><span class="sy3">&</span> str,<br />
|
|
char_type fill, <span class="kw4">const</span> <a href="cpp-chrono-c-tm.html"><span class="kw1023">std::<span class="me2">tm</span></span></a><span class="sy2">*</span> t,<br /></p>
|
|
<span class="kw4">char</span> format, <span class="kw4">char</span> modifier <span class="sy1">=</span> <span class="nu0">0</span> <span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></div>
|
|
</td>
|
|
<td>(2)</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">protected</span><span class="sy4">:</span><br /></span>
|
|
<p><span class="kw1">virtual</span> iter_type do_put<span class="br0">(</span> iter_type out, <a href="cpp-io-ios_base.html"><span class="kw1669">std::<span class="me2">ios_base</span></span></a><span class="sy3">&</span> str,<br />
|
|
char_type fill, <span class="kw4">const</span> <a href="cpp-chrono-c-tm.html"><span class="kw1023">std::<span class="me2">tm</span></span></a><span class="sy2">*</span> t,<br /></p>
|
|
<span class="kw4">char</span> format, <span class="kw4">char</span> modifier <span class="br0">)</span> <span class="kw4">const</span><span class="sy4">;</span></div>
|
|
</td>
|
|
<td>(3)</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>按照格式字符串 <code>[fmtbeg, fmtend)</code> ,转换存储于 <code>t</code> 所指向的 <span class="t-lc"><a href="cpp-chrono-c-tm.html">std::tm</a></span> 对象中的日历日期和时间为字符串。格式字符串同 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-chrono-c-strftime.html"><span class="kw1017">std::<span class="me2">strftime</span></span></a></span></span> 所用者,但用对 <code>do_put()</code> 的单独调用处理每个格式指定符,这可以通过扩展此刻面定制。</p>
|
|
<div class="t-li1"><span class="t-li">1)</span> 逐步通过字符序列 <code>[fmtbeg, fmtend)</code> ,检验字符。每个不是格式序列的字符都被立即写入输出迭代器 <code>out</code> 。为鉴别格式序列,此函数如同用 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-locale-ctype.html"><span class="kw1938">std::<span class="me2">ctype</span></span></a><span class="sy1"><</span>char_type<span class="sy1">></span><span class="br0">(</span>str.<span class="me1">getloc</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span>.<span class="me1">narrow</span><span class="br0">(</span>c,<span class="nu0">0</span><span class="br0">)</span></span></span> 窄化 <code>[fmtbeg, fmtend)</code> 中的下个字符 <code>c</code> ,而若它等于 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">'%'</span></span></span> ,则将下一或二个字符与 <span class="t-lc"><a href="cpp-chrono-c-strftime.html">std::strftime</a></span> 所辨识的格式序列列表,加此 locale 所支持的任何额外实现定义格式比较。对每个合法格式序列进行调用 <span class="t-c"><span class="mw-geshi cpp source-cpp">do_put<span class="br0">(</span>out, str, fill, t, format, modifier<span class="br0">)</span></span></span> ,其中 <code>format</code> 为格式序列字符,而 <code>modifier</code> 是可选的格式序列修饰符( <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">'E'</span></span></span> 或 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">'O'</span></span></span> )。若修饰符不存在则使用值 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">'<span class="es5">\0</span>'</span></span></span> 。</div>
|
|
<div class="t-li1"><span class="t-li">2)</span> 调用最终导出类的 <code>do_put</code> 成员函数。</div>
|
|
<div class="t-li1"><span class="t-li">3)</span> 按照由连接 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">'%'</span></span></span> 、若 <code>modifier</code> 非 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">'<span class="es5">\0</span>'</span></span></span> 则有其值,和 <code>format</code> 的值组成的格式转换序列,转换存储于 <code>t</code> 所指向的 <span class="t-lc"><a href="cpp-chrono-c-tm.html">std::tm</a></span> 对象中的日历日期和时间为字符串。格式转译方式同函数 <span class="t-lc"><a href="cpp-chrono-c-strftime.html">std::strftime</a></span> ,除了描述为本地环境依赖的格式由此 locale 定义,而且可以支持另外的格式指定符(为这些要使用的实现定义格式指定符提供 <code>fill</code> 参数)。将字符串写入输出迭代器 <code>out</code> 。</div>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0">参数</span></h3>
|
|
<table class="t-par-begin">
|
|
<tr class="t-par">
|
|
<td>out</td>
|
|
<td>-</td>
|
|
<td>输出迭代器,其中写入转换结果</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>str</td>
|
|
<td>-</td>
|
|
<td>此函数在需要时用以获得本地环境刻面的流对象,例如用 <span class="t-lc"><a href="cpp-locale-ctype.html">std::ctype</a></span> 窄化字符</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>t</td>
|
|
<td>-</td>
|
|
<td>指向 <span class="t-lc"><a href="cpp-chrono-c-tm.html">std::tm</a></span> 对象的指针,从该对象获得日期/时间值</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>fmtbeg</td>
|
|
<td>-</td>
|
|
<td>指向指定转换格式的 <code>char_type</code> 字符序列首字符的指针
|
|
<p>格式字符串由零或更多个说明符和通常字符(除 <code>%</code> )构成。所有通常字符,包括空终止字符,都会被复制到输出字符串而不加修改。每个转换说明符都始于 <code>%</code> 字符,可选地跟随 <code>E</code> 或 <code>O</code> 修饰符(若本地环境不支持则忽略),后随决定修饰符行为的字符。下列修饰符格式可用:</p>
|
|
<table class="wikitable" style="font-size:85%; max-width:90em;">
|
|
<tr>
|
|
<th>转换<br />
|
|
说明符</th>
|
|
<th>解释</th>
|
|
<th>使用的域</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>%</code></th>
|
|
<td>写字面的 <code>%</code> 。完整转换说明必须是 <code>%%</code> 。</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>n</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写换行符</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>t</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写水平制表符</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">年</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Y</code></th>
|
|
<td>以 4 位十进制数写<b>年</b>。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>EY</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用方式写<b>年</b>。例如在 ja_JP 本地环境中,以“平成23年”取代“2011年”。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>y</code></th>
|
|
<td>写<b>年</b>的末 2 位十进制数(范围<code>[00,99]</code>)。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Oy</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写<b>年</b>的末 2 位数字。例如在 ja_JP 本地环境中以“十一”取代“11”。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Ey</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>将<b>年</b>写作从本地环境的替用时期 <code>%EC</code> 的偏移(本地环境依赖)。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>C</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写<b>年</b>的首 2 位十进制数(范围 <code>[00,99]</code> )。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>EC</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以本地环境的替用表示写<b>年份基底(时期)</b>,例如 ja_JP 中的“平成”。</td>
|
|
<td><code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>G</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写<b>基于 ISO 8601 的年</b>,即是包含指定星期的年份。
|
|
<p>IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:</p>
|
|
<ul>
|
|
<li>包含 1 月 4 日</li>
|
|
<li>包含一年的首个星期四</li>
|
|
</ul>
|
|
</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>g</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写<b>基于 ISO 8601 的年</b>,即是包含指定星期年份,的后 2 位数(范围 <code>[00,99]</code> )。
|
|
<p>IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:</p>
|
|
<ul>
|
|
<li>包含 1 月 4 日</li>
|
|
<li>包含一年的首个星期四</li>
|
|
</ul>
|
|
</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">月</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>b</code></th>
|
|
<td>写<b>缩略月</b>名,例如 <code>Oct</code> (本地环境依赖)。</td>
|
|
<td><code><b>tm_mon</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>h</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>与 <code>b</code> 同意。</td>
|
|
<td><code><b>tm_mon</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>B</code></th>
|
|
<td>写<b>完整月</b>名,例如 <code>October</code> (本地环境依赖)。</td>
|
|
<td><code><b>tm_mon</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>m</code></th>
|
|
<td>将<b>月</b>写作十进制数(范围 <code>[01,12]</code> )。</td>
|
|
<td><code><b>tm_mon</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Om</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写<b>月</b>。例如 ja_JP 本地环境中“十二”取代“12”。</td>
|
|
<td><code><b>tm_mon</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">星期</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>U</code></th>
|
|
<td>以十进制数写<b>年的星期</b>(星期日是星期的首日)(范围 <code>[00,53]</code> )。</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OU</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数值系统写如同用 <code>%U</code> 的<b>年的星期</b>。例如“五十二”在 ja_JP 本地环境中取代“52”。</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>W</code></th>
|
|
<td>以十进制数写<b>年的星期</b>(星期一是星期的首日)(范围 <code>[00,53]</code> )。</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OW</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数值系统写如同用 <code>%W</code> 的<b>年的第星期</b>。例如“五十二”在 ja_JP 本地环境中取代“52”。</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>V</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写 <b>ISO 8601 的年的星期</b>(范围<code>[00,53]</code>)。
|
|
<p>IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:</p>
|
|
<ul>
|
|
<li>包含 1 月 4 日</li>
|
|
<li>包含一年的首个星期四</li>
|
|
</ul>
|
|
</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OV</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数值系统写如同用 <code>%V</code> 的<b>年的星期</b>。例如“五十二”在 ja_JP 本地环境中取代“52”。</td>
|
|
<td><code><b>tm_year</b></code>, <code><b>tm_wday</b></code>, <code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">年/月之日</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>j</code></th>
|
|
<td>以十进制数写<b>年的第几日</b>(范围 <code>[001,366]</code> )。</td>
|
|
<td><code><b>tm_yday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>d</code></th>
|
|
<td>以十进制数写<b>月的第几日</b>(范围 <code>[01,31]</code> )。</td>
|
|
<td><code><b>tm_mday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Od</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写零基的<b>月的第几日</b>。例如 ja_JP 本地环境中“二十七”取代“ 27 ”。
|
|
<p>单字符前加空格。</p>
|
|
</td>
|
|
<td><code><b>tm_mday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>e</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以十进制数写<b>月的第几日</b>(范围<code>[01,31]</code>)。
|
|
<p>单数字前加空格。</p>
|
|
</td>
|
|
<td><code><b>tm_mday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Oe</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写一基的<b>月的第几日</b>。例如 ja_JP 本地环境中“二十七”取代“27”。
|
|
<p>单字符前加空格。</p>
|
|
</td>
|
|
<td><code><b>tm_mday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">星期之日</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>a</code></th>
|
|
<td>写<b>缩略的星期日期</b>名,例如 <code>Fri</code> (本地环境依赖)。</td>
|
|
<td><code><b>tm_wday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>A</code></th>
|
|
<td>写<b>完整的星期日期</b>名,例如 <code>Friday</code> (本地环境依赖)。</td>
|
|
<td><code><b>tm_wday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>w</code></th>
|
|
<td>以十进制数写<b>星期日期</b>,其中星期日是 <code>0</code> (范围 <code>[0-6]</code> )。</td>
|
|
<td><code><b>tm_wday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Ow</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>用替用数字系统写<b>星期日期</b>,其中星期日是 <code>0</code> 。例如 ja_JP 本地环境中“二”取代“2”。</td>
|
|
<td><code><b>tm_wday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>u</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>十进制数写<b>星期日期</b>,其中星期一是 <code>1</code> ( ISO 8601 格式)(范围 <code>[1-7]</code> )。</td>
|
|
<td><code><b>tm_wday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Ou</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>用替用数字系统写<b>星期日期</b>,其中星期一是 <code>1</code> 。例如 ja_JP 本地环境中“二”取代“2”。</td>
|
|
<td><code><b>tm_wday</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">时、分、秒</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>H</code></th>
|
|
<td>以十进制数写<b>时</b>, 24 小时制(范围 <code>[00-23]</code> )。</td>
|
|
<td><code><b>tm_hour</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OH</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写 24 小时制的<b>时</b>。例如 ja_JP 本地环境中“十八”取代“18”。</td>
|
|
<td><code><b>tm_hour</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>I</code></th>
|
|
<td>以十进制数写<b>时</b>, 12 小时制(范围 <code>[01,12]</code> )。</td>
|
|
<td><code><b>tm_hour</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OI</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写 12 小时制的<b>时</b>。例如 ja_JP 本地环境中“六”取代“6”。</td>
|
|
<td><code><b>tm_hour</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>M</code></th>
|
|
<td>以十进制数写<b>分</b>(范围 <code>[00,59]</code> )。</td>
|
|
<td><code><b>tm_min</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OM</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写<b>分</b>。例如 ja_JP 本地环境中“二十五”取代“25”。</td>
|
|
<td><code><b>tm_min</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>S</code></th>
|
|
<td>以十进制数写<b>秒</b>(范围 <code>[00,60]</code> )。</td>
|
|
<td><code><b>tm_sec</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>OS</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以替用数字系统写<b>秒</b>。例如 ja_JP 本地环境中“二十四”取代“24”。</td>
|
|
<td><code><b>tm_sec</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3">其他</th>
|
|
</tr>
|
|
<tr>
|
|
<th><code>c</code></th>
|
|
<td>写<b>标准日期时间字符串</b>。例如 <code>Sun Oct 17 04:41:13 2010</code> (本地环境依赖)。</td>
|
|
<td>全部</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Ec</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写<b>替用日期时间字符串</b>。例如 ja_JP 本地环境中“平成23年”取代“2011年”。</td>
|
|
<td>全部</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>x</code></th>
|
|
<td>写本地化的<b>日期表示</b>(本地环境依赖)。</td>
|
|
<td>全部</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Ex</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写<b>替用日期表示</b>。例如 ja_JP 本地环境中“平成23年”取代“2011年”。</td>
|
|
<td>全部</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>X</code></th>
|
|
<td>写本地化的<b>时间表示</b>,例如 18:40:20 或 6:40:20 PM (本地环境依赖)。</td>
|
|
<td>全部</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>EX</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写<b>替用时间表示</b>(本地环境依赖)。</td>
|
|
<td>全部</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>D</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>等价于<b>"%m/%d/%y"</b>。</td>
|
|
<td><code><b>tm_mon</b></code>, <code><b>tm_mday</b></code>, <code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>F</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>等价于<b>"%Y-%m-%d"</b>( ISO 8601 日期格式)。</td>
|
|
<td><code><b>tm_mon</b></code>, <code><b>tm_mday</b></code>, <code><b>tm_year</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>r</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>写本地化的 <b>12 小时制</b>时间(本地环境依赖)。</td>
|
|
<td><code><b>tm_hour</b></code>, <code><b>tm_min</b></code>, <code><b>tm_sec</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>R</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>等价于<b>"%H:%M"</b>。</td>
|
|
<td><code><b>tm_hour</b></code>, <code><b>tm_min</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>T</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>等价于<b>"%H:%M:%S"</b>( ISO 8601 时间格式)。</td>
|
|
<td><code><b>tm_hour</b></code>, <code><b>tm_min</b></code>, <code><b>tm_sec</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>p</code></th>
|
|
<td>写本地化的 <b>a.m.</b> 或 <b>p.m.</b> (本地环境依赖)。</td>
|
|
<td><code><b>tm_hour</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>z</code><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11)</span></th>
|
|
<td>以 ISO 8601 格式(例如 <code>-0430</code> )写<b>距 UTC 的偏移</b>,或者倘若时区信息不可用则不写字符。</td>
|
|
<td><code><b>tm_isdst</b></code></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>Z</code></th>
|
|
<td>写依赖本地环境的<b>时区名或缩写</b>,或者若时区信息不可用则不写字符。</td>
|
|
<td><code><b>tm_isdst</b></code></td>
|
|
</tr>
|
|
</table>
|
|
<p><br /></p>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>fmtend</td>
|
|
<td>-</td>
|
|
<td>指向指定转换格式的 <code>char_type</code> 字符序列的末字符后一位置的指针</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>fill</td>
|
|
<td>-</td>
|
|
<td>填充字符(通常为空格)</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>format</td>
|
|
<td>-</td>
|
|
<td>指名转换指定符的字符</td>
|
|
</tr>
|
|
<tr class="t-par">
|
|
<td>modifier</td>
|
|
<td>-</td>
|
|
<td>可出现于 <code>%</code> 和转换指定符间的可选修饰符</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E5.80.BC">返回值</span></h3>
|
|
<p>指向最后产生字符后一位置的迭代器。</p>
|
|
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">注解</span></h3>
|
|
<p>不提供错误处理。</p>
|
|
<p>为实现定义的格式指定符,和使用填充和填满逻辑的用户定义的 <code>do_put()</code> 覆写提供 <code>fill</code> 字符。这种实现典型地利用来自 <code>str</code> 的格式化标志。</p>
|
|
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">示例</span></h3>
|
|
<div class="t-example">
|
|
<div class="t-example-live-link"></div>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="cpp source-cpp">
|
|
<pre class="de1"><span class="co2">#include <iostream></span>
|
|
<span class="co2">#include <sstream></span>
|
|
<span class="co2">#include <iomanip></span>
|
|
<span class="co2">#include <ctime></span>
|
|
|
|
<span class="kw4">void</span> try_time_put<span class="br0">(</span><span class="kw4">const</span> <a href="cpp-chrono-c-tm.html"><span class="kw1023">std::<span class="me2">tm</span></span></a><span class="sy2">*</span> t, <span class="kw4">const</span> <a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy3">&</span> fmt<span class="br0">)</span>
|
|
<span class="br0">{</span>
|
|
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a>.<span class="me1">imbue</span><span class="br0">(</span><a href="cpp-locale-locale.html"><span class="kw1894">std::<span class="me2">locale</span></span></a><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
|
|
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"In the locale '"</span> <span class="sy1"><<</span> <a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a>.<span class="me1">getloc</span><span class="br0">(</span><span class="br0">)</span>.<span class="me1">name</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">"' : '"</span><span class="sy4">;</span>
|
|
|
|
<a href="cpp-locale-use_facet.html"><span class="kw1897">std::<span class="me2">use_facet</span></span></a><span class="sy1"><</span><a href="cpp-locale-time_put.html"><span class="kw1952">std::<span class="me2">time_put</span></span></a><span class="sy1"><</span><span class="kw4">char</span><span class="sy1">>></span><span class="br0">(</span><a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a>.<span class="me1">getloc</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span>.<span class="me1">put</span><span class="br0">(</span>
|
|
<span class="br0">{</span><a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a><span class="br0">}</span>, <a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a>, <span class="st0">' '</span>, t, <span class="sy3">&</span>fmt<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>, <span class="sy3">&</span>fmt<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> <span class="sy2">+</span> fmt.<span class="me1">size</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"'<span class="es1">\n</span>"</span><span class="sy4">;</span>
|
|
<span class="br0">}</span>
|
|
|
|
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
|
|
<span class="br0">{</span>
|
|
<a href="cpp-chrono-c-time_t.html"><span class="kw1024">std::<span class="me2">time_t</span></span></a> t <span class="sy1">=</span> <a href="cpp-chrono-c-time.html"><span class="kw1011">std::<span class="me2">time</span></span></a><span class="br0">(</span><a href="cpp-types-NULL.html"><span class="kw103">NULL</span></a><span class="br0">)</span><span class="sy4">;</span>
|
|
<a href="cpp-chrono-c-tm.html"><span class="kw1023">std::<span class="me2">tm</span></span></a> tm <span class="sy1">=</span> <span class="sy2">*</span><a href="cpp-chrono-c-localtime.html"><span class="kw1020">std::<span class="me2">localtime</span></span></a><span class="br0">(</span><span class="sy3">&</span>t<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
<a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> fmt <span class="sy1">=</span> <span class="st0">"%c"</span><span class="sy4">;</span>
|
|
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"Using the format string '"</span> <span class="sy1"><<</span> fmt
|
|
<span class="sy1"><<</span> <span class="st0">"' to format the time: "</span> <span class="sy1"><<</span> <a href="cpp-chrono-c-ctime.html"><span class="kw1016">std::<span class="me2">ctime</span></span></a><span class="br0">(</span><span class="sy3">&</span>t<span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span>
|
|
|
|
std<span class="sy4">::</span><span class="me2">locale</span><span class="sy4">::</span><span class="me2">global</span><span class="br0">(</span><a href="cpp-locale-locale.html"><span class="kw1894">std::<span class="me2">locale</span></span></a><span class="br0">(</span><span class="st0">"de_DE.utf8"</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
|
|
try_time_put<span class="br0">(</span><span class="sy3">&</span>tm, fmt<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
std<span class="sy4">::</span><span class="me2">locale</span><span class="sy4">::</span><span class="me2">global</span><span class="br0">(</span><a href="cpp-locale-locale.html"><span class="kw1894">std::<span class="me2">locale</span></span></a><span class="br0">(</span><span class="st0">"el_GR.utf8"</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
|
|
try_time_put<span class="br0">(</span><span class="sy3">&</span>tm, fmt<span class="br0">)</span><span class="sy4">;</span>
|
|
|
|
std<span class="sy4">::</span><span class="me2">locale</span><span class="sy4">::</span><span class="me2">global</span><span class="br0">(</span><a href="cpp-locale-locale.html"><span class="kw1894">std::<span class="me2">locale</span></span></a><span class="br0">(</span><span class="st0">"ja_JP.utf8"</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
|
|
try_time_put<span class="br0">(</span><span class="sy3">&</span>tm, fmt<span class="br0">)</span><span class="sy4">;</span>
|
|
<span class="br0">}</span></pre></div>
|
|
</div>
|
|
<p>输出:</p>
|
|
<div dir="ltr" class="mw-geshi" style="text-align: left;">
|
|
<div class="text source-text">
|
|
<pre class="de1">Using the format string '%c' to format the time: Mon Feb 11 22:58:50 2013
|
|
|
|
In the locale 'de_DE.utf8' : 'Mo 11 Feb 2013 23:02:38 EST'
|
|
In the locale 'el_GR.utf8' : 'Δευ 11 Φεβ 2013 11:02:38 μμ EST'
|
|
In the locale 'ja_JP.utf8' : '2013年02月11日 23時02分38秒'</pre></div>
|
|
</div>
|
|
</div>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">参阅</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-manip-put_time.html"><span class="t-lines"><span>put_time</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>按照指定格式格式化并输出日期/时间值<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-locale-time_get-get.html"><span class="t-lines"><span>do_get</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-cmark">[虚]</span> <span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>从输入流释出日期/时间组分,按照指定格式<br />
|
|
<span class="t-mark">(<code>std::time_get<CharT,InputIt></code> 的虚受保护成员函数)</span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|