blob: 37d3dd3d4eb3d2cd6e1f79242e932467574d708d [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed
with this work for additional information regarding copyright
ownership. The ASF licenses this file to you under the Apache
License, Version 2.0 (the License); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
Copyright 1999-2007 Rogue Wave Software, Inc.
-->
<HTML>
<HEAD>
<TITLE>time_put</TITLE>
<LINK REL=StyleSheet HREF="../rw.css" TYPE="text/css" TITLE="Apache stdcxx Stylesheet"></HEAD>
<BODY BGCOLOR=#FFFFFF>
<A HREF="time-get-byname.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="time-put-byname.html"><IMG SRC="images/bnext.gif" WIDTH=25 HEIGHT=21 ALT="Next file" BORDER=O></A><DIV CLASS="DOCUMENTNAME"><B>Apache C++ Standard Library Reference Guide</B></DIV>
<H2>time_put</H2>
<P><B>Library:</B>&nbsp;&nbsp;<A HREF="2-6.html">Localization</A></P>
<PRE><HR> <B><I>time_put</I></B> <IMG SRC="images/inherits.gif"> <B><I>locale::facet</I></B> <HR></PRE>
<UL>
<LI><A HREF="#sec1">Local Index</A></LI>
<LI><A HREF="#sec2">Summary</A></LI>
<LI><A HREF="#sec3">Synopsis</A></LI>
<LI><A HREF="#sec4">Specializations</A></LI>
<LI><A HREF="#sec5">Description</A></LI>
<LI><A HREF="#sec6">Interface</A></LI>
<LI><A HREF="#sec7">Member Types</A></LI>
<LI><A HREF="#sec8">Constructor</A></LI>
<LI><A HREF="#sec9">Destructor</A></LI>
<LI><A HREF="#sec10">Facet ID</A></LI>
<LI><A HREF="#sec11">Public Member Functions</A></LI>
<LI><A HREF="#sec12">Protected Member Functions</A></LI>
<LI><A HREF="#sec13">Example</A></LI>
<LI><A HREF="#sec14">See Also</A></LI>
<LI><A HREF="#sec15">Standards Conformance</A></LI>
</UL>
<A NAME="sec1"><H3>Local Index</H3></A>
<H4>Members</H4>
<UL><TABLE CELLPADDING=3>
<TR><TD VALIGN=top>
<A HREF="#idx1243">char_type</A><BR>
<A HREF="#idx1250">do_put()</A><BR>
</TD>
<TD VALIGN=top><A HREF="#idx1247">id</A><BR>
<A HREF="#idx1244">iter_type</A><BR>
</TD>
<TD VALIGN=top><A HREF="#idx1248">put()</A><BR>
<A HREF="#idx1245">time_put()</A><BR>
</TD>
<TD VALIGN=top><A HREF="#idx1246">~time_put()</A><BR>
</TD></TR>
</TABLE></UL>
<A NAME="sec2"><H3>Summary</H3></A>
<P>A time formatting facet for output</P>
<A NAME="sec3"><H3>Synopsis</H3></A>
<PRE>#include &lt;locale&gt;
namespace std {
template &lt;class charT, class OutputIterator =
ostreambuf_iterator&lt;charT&gt; &gt;
class time_put;
}
</PRE>
<A NAME="sec4"><H3>Specializations</H3></A>
<UL><PRE>template &lt;&gt; class time_put&lt;char&gt;;
template &lt;&gt; class time_put&lt;wchar_t&gt;;
</PRE></UL>
<A NAME="sec5"><H3>Description</H3></A>
<P>The <B><I>time_put</I></B> facet includes facilities for formatted output of date/time values. The <SAMP>put()</SAMP> member functions format a <SAMP>struct tm</SAMP> that represents a date/time into a character string representation.</P>
<A NAME="sec6"><H3>Interface</H3></A>
<UL><PRE>namespace std {
template &lt;class charT, class OutputIterator =
ostreambuf_iterator&lt;charT&gt; &gt;
class time_put : public locale::facet {
public:
typedef charT char_type;
typedef OutputIterator iter_type;
explicit time_put(size_t = 0);
iter_type put(iter_type, ios_base&amp;,
char_type, const tm*,
const charT*, const charT*) const;
iter_type put(iter_type, ios_base&amp;, char_type,
const tm*, char, char = 0) const;
static locale::id id;
protected:
virtual iter_type do_put(iter_type, ios_base&amp;,
char_type, const tm*,
char, char) const;
};
}
</PRE></UL>
<A NAME="sec7"><H3>Member Types</H3></A>
<A NAME="idx1243"></A><PRE><B>char_type</B></PRE>
<UL>
<P>The type of the first template argument.</P>
</UL>
<A NAME="idx1244"></A><PRE><B>iter_type</B></PRE>
<UL>
<P>The type of the second template argument.</P>
</UL>
<A NAME="sec8"><H3>Constructor</H3></A>
<A NAME="idx1245"></A><PRE>explicit <B>time_put</B>(size_t refs = 0); </PRE>
<UL>
<P>Constructs a <B><I>time_put</I></B> object. Calls <SAMP>locale::facet (refs)</SAMP>. </P>
<P>The <SAMP>refs</SAMP> argument is set to the initial value of the <B><I>time_put</I></B> object's reference count. A <B><I>time_put</I></B> object <SAMP>f</SAMP> constructed with (<SAMP>refs == 0</SAMP>) that is installed in one or more locale objects will be destroyed and the storage it occupies will be deallocated when the last locale object containing the facet is destroyed, as if by calling <SAMP>delete static_cast&lt;locale::facet*&gt;(&amp;f)</SAMP>. A <B><I>time_put</I></B> object constructed with (<SAMP>refs != 0</SAMP>) will not be destroyed by any locale objects in which it may have been installed.</P>
</UL>
<A NAME="sec9"><H3>Destructor</H3></A>
<A NAME="idx1246"></A><PRE>virtual <B>~time_put</B>(); </PRE>
<UL>
<P>Destroys the facet.</P>
</UL>
<A NAME="sec10"><H3>Facet ID</H3></A>
<A NAME="idx1247"></A><PRE>static locale::id <B>id</B>;</PRE>
<UL>
<P>Unique identifier for this type of facet. </P>
</UL>
<A NAME="sec11"><H3>Public Member Functions</H3></A>
<A NAME="idx1248"></A><PRE>iter_type
<B>put</B>(iter_type s, ios_base&amp; f,
char_type fill, const tm* tmb,
const char_type* pattern, const char_type* pat_end) const; </PRE>
<UL>
<P>Formats the contents of the object pointed to by <SAMP>tmb</SAMP> into the output sequence beginning with <SAMP>s</SAMP>. The format of the output sequence is determined by the string of format specifiers and modifiers contained in the range <SAMP>[pattern,pat_end)</SAMP>. These specifiers and modifiers are from the same set as those used by the <SAMP>strftime</SAMP> function and are applied in exactly the same way. See <A HREF="time-put.html#Table&nbsp;36">Table&nbsp;36</A> for a description of <SAMP>strftime</SAMP> formatting characters.</P>
<P>The <SAMP>f</SAMP> argument is used to determine the justification and the width of the output sequence.</P>
<P>The <SAMP>fill</SAMP> argument is used for any padding.</P>
<P>Returns an iterator pointing one past the last character written.</P>
</UL>
<A NAME="idx1249"></A><PRE>iter_type
<B>put</B>(iter_type s, ios_base&amp; f, char_type fill,
const tm* tmb, char format, char modifier = 0) const;</PRE>
<UL>
<P>Calls the protected virtual function <SAMP>do_put(s,f,fill,tmb,format,modifier)</SAMP>.</P>
</UL>
<A NAME="sec12"><H3>Protected Member Functions</H3></A>
<A NAME="idx1250"></A><PRE>iter_type
<B>do_put</B>(iter_type s, ios_base&amp; f, char_type fill,
const tm* tmb, char format, char modifier = 0) const; </PRE>
<UL>
<P>Formats the contents of the object pointed to by the <SAMP>tmb</SAMP> into the output sequence beginning with <SAMP>s</SAMP>. The output sequence is formatted according the specifier <SAMP>format</SAMP> and modifier <SAMP>modifier</SAMP>. These values are interpreted in the same way as the <SAMP>strftime</SAMP> function interprets its format specifiers and modifiers flags. See the table below for a description of recognized formatting characters.</P>
<P>The <SAMP>f</SAMP> argument is used to determine the justification and the width of the output sequence.</P>
<P>The <SAMP>fill</SAMP> argument is used for any padding.</P>
<P>Returns an iterator pointing one past the last character written.</P>
<P><A HREF="time-put.html#Table&nbsp;36">Table&nbsp;36</A> illustrates the recognized formatting characters of <SAMP>strftime</SAMP>. The values in the table are for February 29, 1984 at 14:34:56 (MST).</P>
<H4><A NAME="Table&nbsp;36">Table&nbsp;36: Recognized formatting characters. Struct tm members used to produce the format are noted [in brackets].&nbsp;</A></H4>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="3">
<tr><td valign=top><B>Format character</B>
</td>
<td valign=top><B>Meaning</B>
</td>
<td valign=top><B>C locale value</B>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>a</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Abbreviated weekday name. In the C locale, the first three characters of<SAMP> %A. [tm_wday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>Wed</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>A</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Full weekday name.<SAMP> [tm_wday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>Wednesday</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>b</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Abbreviated month name. In the C locale, the first three characters of<SAMP> %B. [tm_mon]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>Feb</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>B</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Full month name.<SAMP> [tm_mon] </SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>February</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>c</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Date and time. In the C Locale, equivalent to<SAMP> %a %b %e %H %M %S %Y </SAMP>May use any or all members. </P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>Wed Feb 29 14:34:56 1984</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>C</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The year divided by 100 and truncated to an integer. <SAMP>[00,99][tm_year]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>84</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>d</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Day of the month. <SAMP>[01,31][tm_mday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>29</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>D</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Equivalent to <SAMP>%m/%d/%y [tm_mon, tm_mday, tm_year]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>02/29/84</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>e</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The day of the month <SAMP>[1,31] </SAMP>with single digits preceded by a space. <SAMP>[tm_mday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>29</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>F</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Equivalent to <SAMP>%Y-%m-%d</SAMP> (the ISO 8601:2000 standard date format). <SAMP>[tm_year, tm_mon, tm_mday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>1984-02-29</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>g</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The last 2 digits of the ISO 8601:2000 standard week-based year <SAMP>[00,99]</SAMP>. <SAMP>[tm_year, tm_wday, tm_yday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>84</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>G</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The ISO 8601:2000 standard week-based year. <SAMP>[tm_year, tm_wday, tm_yday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>1984</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>h</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Equivalent to <SAMP>%b</SAMP>. <SAMP>[tm_mon]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>Feb</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>H</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Hour of the 24-hour day.<SAMP>[00,23]</SAMP>. <SAMP>[tm_hour] </SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>14</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>i</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Hour of the 12-hour day [1,12]. Single digits preceded by a blank. [tm_hour]
<SUP>1</SUP></LITERAL></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>" 2"</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>I</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Hour of the 12-hour day<SAMP> [01,12]</SAMP>. <SAMP>[tm_hour]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>02</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>j</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Day of the year <SAMP>[001,366]</SAMP>. <SAMP>[tm_yday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>60</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>k</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Hour of the 24-hour day <SAMP>[0,23]</SAMP>. Single digits preceded by a blank. <SAMP>[tm_hour]</SAMP><SUP>1</SUP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>14</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>m</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Month of the year <SAMP>[01,12]</SAMP>. <SAMP>[tm_mon]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>02</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>M</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Minutes after the hour <SAMP>[00,59]</SAMP>. <SAMP>[tm_min]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>34</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>n</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The <SAMP>&lt;newline&gt;</SAMP> character from the Portable Character Set.</P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>\n</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>p</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">AM/PM indicator, if any. In the C locale, one of "AM", and "PM". <SAMP>[tm_hour]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>PM</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>r</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Time using a.m. and p.m. notation. In the C locale, equivalent to <SAMP>%I:%M %S %p</SAMP>. <SAMP>[tm_hour, tm_min, tm_sec]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>02:34:56 PM</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>R</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Time in 24-hour notation <SAMP>(%H:%M)</SAMP>. <SAMP>[tm_hour, tm_min]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>14:34</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>S</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Seconds after the minute. <SAMP>[tm_sec]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>56</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>t</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The <SAMP>&lt;tab&gt;</SAMP> character from the Portable Character Set.</P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>\t</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>T</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Time <SAMP>(%H:%M:%S)</SAMP>. <SAMP>[tm_hour, tm_min, tm_sec]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>14:34:56</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>u</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Weekday as a decimal number, with <SAMP>1</SAMP> for Monday <SAMP>[1,7]. [tm_wday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>3</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>U</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Sunday-based week of the year <SAMP>[00,53]</SAMP>. <SAMP>[tm_year, tm_wday, tm_yday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>09</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>V</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">ISO 8601:2000 standard (Monday-based) week number of the year <SAMP>[01,53]</SAMP>. <SAMP>[tm_year, tm_wday, tm_yday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>09</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>w</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Day of the week, with <SAMP>0 </SAMP>for Sunday <SAMP>[0,6]</SAMP>.</P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>3</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>W</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Monday-based week of the year <SAMP>[00,53]</SAMP>. <SAMP>[tm_year, tm_wday, tm_yday]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>09</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>x</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Date. In the C locale, equivalent to <SAMP>%m/%d/%y</SAMP>. [may use any or all members]</P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>02/29/1984</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>X</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Time. In the C locale, equivalent to <SAMP>%T</SAMP>. [may use any or all members]</P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>14:34:56</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>y</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Last 2 digits of the year <SAMP>[00,99]</SAMP>. <SAMP>[tm_year]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>84</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>Y</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Year. <SAMP>[tm_year]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>1984</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>z</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The offset from UTC in the ISO 8601:2000 standard format (<SAMP>+hhmm </SAMP>or <SAMP>-hhmm)</SAMP>, or by no characters if no time zone is determinable. If <SAMP>tm_isdst</SAMP> is zero, the standard time offset is used; otherwise if <SAMP>tm_isdst</SAMP> is greater than zero, the daylight savings time offset is used; otherwise, no characters are returned.<SAMP> [tm_isdst]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>e.g., -0700</SAMP></P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>Z</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Time zone name (implementation-defined). <SAMP>[tm_isdst]</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE"><SAMP>e.g. MST</SAMP></P>
</td>
</tr>
</TABLE>
<OL><LI>This format is an extension to the IEEE Std 1003.1 standard provided by this implementation.
</LI></OL>
</PARA>
<P><A HREF="time-put.html#Table&nbsp;37">Table&nbsp;37</A> illustrates the recgonized modified formatting characters and their corresponding meaning.</P>
<H4><A NAME="Table&nbsp;37">Table&nbsp;37: Recognized modified formatting characters&nbsp;.</A></H4>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="3">
<tr><td valign=top><B>Format string</B>
</td>
<td valign=top><B>Meaning</B>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Ec</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The locale's alternative appropriate date and time representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%EC</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The name of the base year (period) in the locale's alternative representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Ex</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The locale's alternative date representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%EX</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The locale's alternative time representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Ey</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The offset from <SAMP>%EC</SAMP> (year only) in the locale's alternative representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%EY</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The full alternative year representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Od</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The day of the month, using the locale's alternative numeric symbols, filled if necessary with leading zeros if there is any alternative symbol for zero; otherwise, with leading spaces.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Oe</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The day of the month, using the locale's alternative numeric symbols, filled if necessary with leading spaces.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OH</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The hour of the 24-hour day using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OI</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The hour of the 12-hour day using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Om</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The month using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OM</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The minutes using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OS</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The seconds using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Ou</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The Monday-based weekday as a number in the locale's alternative representation.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OU</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The Sunday-based week number of the year (as in <SAMP>%U)</SAMP> using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OV</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The Monday-based week number of the year (as in <SAMP>%V</SAMP>) using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Ow</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The Sunday-based number of the weekday using the locale's alternative numeric symbols. </P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%OW</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">The Monday-based week number of the year using the locale's alternative numeric symbols.</P>
</td>
</tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>%Oy</SAMP></P>
</td>
<td valign=top><P CLASS="TABLE">Replaced by the year (offset from <SAMP>%C</SAMP>) using the locale's alternative numeric symbols.</P>
</td>
</tr>
</TABLE>
</UL>
<P>In the C locale, the <SAMP>'E'</SAMP> and <SAMP>'O'</SAMP> modifiers are ignored.</P>
<P>The behavior of the functions is undefined if the modifier is other than <SAMP>'\0'</SAMP>, <SAMP>'E'</SAMP> and <SAMP>'O'</SAMP>, or if the format character is other than those specified in <A HREF="time-put.html#Table&nbsp;36">Table&nbsp;36</A> above.</P>
<P>For example, if the set of a locale's alternative numeric symbols consists of { <SAMP>""</SAMP>, <SAMP>"</SAMP><SAMP>1st</SAMP><SAMP>"</SAMP>, <SAMP>"</SAMP><SAMP>2nd</SAMP><SAMP>"</SAMP>, <SAMP>"</SAMP><SAMP>3rd</SAMP><SAMP>"</SAMP>, ... , <SAMP>"</SAMP><SAMP>31st</SAMP><SAMP>"</SAMP>} then the date Wednesday, February 29, 1984 will be formatted using <SAMP>"</SAMP><SAMP>%Od</SAMP><SAMP>"</SAMP> as <SAMP>"</SAMP><SAMP>29th</SAMP><SAMP>"</SAMP>.</P>
<A NAME="sec13"><H3>Example</H3></A>
<UL><PRE>//
// timeput.cpp
//
#include &lt;ctime&gt; // for struct tm
#include &lt;iostream&gt; // for cout, endl
#include &lt;locale&gt; // for locale, time_put
int main ()
{
// zero-out all members (including any non-standard
// ones) std::tm t = std::tm ();
// assign individual members being careful to
// avoid relying on the implementation-defined
// layout of the struct
t.tm_sec = 56; // seconds
t.tm_min = 34; // minutes
t.tm_hour = 14; // hours (i.e., 2 PM)
t.tm_mday = 29; // day of month
t.tm_mon = 1; // month (Feb)
t.tm_year = 84; // years since 1900
// (i.e., 1984)
t.tm_yday = 59; // day of the year
t.tm_wday = 3; // day of the week (Wednesday)
t.tm_isdst = 0; // Daylight Saving Time
const char* const fmt[] = {
"%a", "%A", "%b", "%B", "%c", "%C", "%d", "%D",
"%e", "%F", "%g", "%G", "%h", "%H", "%I", "%j",
"%k", "%l", "%m", "%M", "%n", "%p", "%r", "%R",
"%S", "%t", "%T", "%u", "%U", "%V", "%w", "%W", "%x",
"%X", "%y", "%Y", "%z", "%Z", "%%", "%Ec", "%EC", "%Ex",
"%EX", "%Ey", "%EY", "%Od", "%Oe", "%OH", "%OI", "%Om",
"%OM", "%OS", "%Ou", "%OU", "%OV", "%Ow", "%OW", "%Oy"
};
// retrieve the time_put facet installed in cout
const std::time_put&lt;char&gt; &amp;tput =
std::use_facet&lt;std::time_put&lt;char&gt; &gt;(std::cout.getloc ());
// print out the value of t formatted according to each
// of the format/ specifiers defined above
for (std::size_t i = 0; i != sizeof fmt / sizeof *fmt; ++i) {
std::cout &lt;&lt; " \"" &lt;&lt; fmt [i] &lt;&lt; "\" \"";
if ('n' == fmt [i][1])
std::cout &lt;&lt; "\\n";
else if ('t' == fmt [i][1])
std::cout &lt;&lt; "\\t";
else
tput.put (std::ostreambuf_iterator&lt;char&gt;(std::cout.rdbuf ()),
std::cout, '\0', &amp;t, fmt [i],
fmt [i] + std::char_traits&lt;char&gt;::length (fmt [i]));
std::cout &lt;&lt; "\"\n";
}
return 0;
}
</PRE></UL>
<P><SAMP>Program Output:</SAMP></P>
<P>With the <SAMP>TZ</SAMP> environment variable defined to a value equivalent to <SAMP>PST8PDT</SAMP>, the output of the program will be as follows:</P>
<UL><PRE> "%a" "Wed"
"%A" "Wednesday"
"%b" "Feb"
"%B" "February"
"%c" "Wed Feb 29 14:34:56 1984"
"%C" "19"
"%d" "29"
"%D" "02/29/84"
"%e" "29"
"%F" "1984-02-29"
"%g" "84"
"%G" "1984"
"%h" "Feb"
"%H" "14"
"%I" "02"
"%j" "060"
"%k" "14"
"%l" " 2"
"%m" "02"
"%M" "34"
"%n" "\n"
"%p" "PM"
"%r" "02:34:56 PM"
"%R" "14:34"
"%S" "56"
"%t" "\t"
"%T" "14:34:56"
"%u" "3"
"%U" "09"
"%V" "09"
"%w" "3"
"%W" "09"
"%x" "02/29/84"
"%X" "14:34:56"
"%y" "84"
"%Y" "1984"
"%z" "+0700"
"%Z" "MST"
"%%" "%"
"%Ec" "Wed Feb 29 14:34:56 1984"
"%EC" "19"
"%Ex" "02/29/84"
"%EX" "14:34:56"
"%Ey" "84"
"%EY" "1984"
"%Od" "29"
"%Oe" "29"
"%OH" "14"
"%OI" "02"
"%Om" "02"
"%OM" "34"
"%OS" "56"
"%Ou" "3"
"%OU" "09"
"%OV" "09"
"%Ow" "3"
"%OW" "09"
"%Oy" "84"
</PRE></UL>
<A NAME="sec14"><H3>See Also</H3></A>
<P><B><I><A HREF="locale.html">locale</A></I></B>, <A HREF="facets.html">Facets</A>, <B><I><A HREF="time-get.html">time_get</A></I></B></P>
<A NAME="sec15"><H3>Standards Conformance</H3></A>
<P><I>ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 25.2.5.3</I></P>
<P><I>ISO/IEC 9899:1999 -- Programming Language C, Section 7.23.3.5, paragraph 3</I></P>
<P><I>IEEE Std 1003.1-2001 -- The Open Group Base Specifications Issue 6, </I>strftime</P>
<P><I>ISO 8601:2000 -- Data elements and interchange formats -- Information interchange -- Representation of dates and times</I></P>
<P><I>IEEE Std 1003.1-2001 -- </I><I>The Open Group Base Specifications Issue 6, Character Set</I></P>
<BR>
<HR>
<A HREF="time-get-byname.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="time-put-byname.html"><IMG SRC="images/bnext.gif" WIDTH=20 HEIGHT=21 ALT="Next file" BORDER=O></A>
<!-- Google Analytics tracking code -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1775151-1";
urchinTracker();
</script>
<!-- end of Google Analytics tracking code -->
</BODY>
</HTML>