CTimeのFormat

5748 ワード


The
format argument consists of one or more codes; as in
printf, the formatting codes are preceded by a percent sign (
%). Characters that do not begin with
% are copied unchanged to
strDest. The
LC_TIME category of the current locale affects the output formatting of
strftime.(For more information on
LC_TIME, see setlocale.) The formatting codes for
strftime are listed below:
%a
Abbreviated weekday name
%A
Full weekday name
%b
Abbreviated month name
%B
Full month name
%c
Date and time representation appropriate for locale
%d
Day of month as decimal number (01 – 31)
%H
Hour in 24-hour format (00 – 23)
%I
Hour in 12-hour format (01 – 12)
%j
Day of year as decimal number (001 – 366)
%m
Month as decimal number (01 – 12)
%M
Minute as decimal number (00 – 59)
%p
Current locale's A.M./P.M. indicator for 12-hour clock
%S
Second as decimal number (00 – 59)
%U
Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w
Weekday as decimal number (0 – 6; Sunday is 0)
%W
Week of year as decimal number, with Monday as first day of week (00 – 53)
%x
Date representation for current locale
%X
Time representation for current locale
%y
Year without century, as decimal number (00 – 99)
%Y
Year with century, as decimal number
%z,
%Z
Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown
%%
Percent sign
As in the
printf function, the
# flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.
Format code
Meaning
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%
# flag is ignored.
%#c
Long date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".
%#x
Long date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y
Remove leading zeros (if any).
Requirements
Routine
Required header
Compatibility
strftime
ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
wcsftime
or
ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
 
 
Example
// crt_times.c
/* This program demonstrates these time and date functions:
 *      _time64         _ftime64        _ctime64     asctime
 *      _localtime64    _gmtime64       _mktime64    _tzset
 *      _strtime        _strdate        strftime
 *
 * Also the global variable:
 *      _tzname
 */

#include 
#include 
#include 
#include 
#include 

int main()
{
    char tmpbuf[128], ampm[] = "AM";
    __time64_t ltime;
    struct __timeb64 tstruct;
    struct tm *today, *gmt, xmas = { 0, 0, 12, 25, 11, 93 };

    /* Set time zone from TZ environment variable. If TZ is not set,
     * the operating system is queried to obtain the default value 
     * for the variable. 
     */
    _tzset();

    /* Display operating system-style date and time. */
    _strtime( tmpbuf );
    printf( "OS time:tttt%sn", tmpbuf );
    _strdate( tmpbuf );
    printf( "OS date:tttt%sn", tmpbuf );

    /* Get UNIX-style time and display as number and string. */
    _time64( tm_hour >= 12 )
    {
   strcpy( ampm, "PM" );
   today->tm_hour -= 12;
    }
    if( today->tm_hour == 0 )  /* Adjust if midnight hour. */
   today->tm_hour = 12;

    /* Note how pointer addition is used to skip the first 11 
     * characters and printf is used to trim off terminating 
     * characters.
     */
    printf( "12-hour time:tttt%.8s %sn",
       asctime( today ) + 11, ampm );

    /* Print additional time information. */
    _ftime64( &tstruct );
    printf( "Plus milliseconds:ttt%un", tstruct.millitm );
    printf( "Zone difference in hours from UTC:t%un", 
             tstruct.timezone/60 );
    printf( "Time zone name:tttt%sn", _tzname[0] );
    printf( "Daylight savings:ttt%sn", 
             tstruct.dstflag   "YES" : "NO" );

    /* Make time for noon on Christmas, 1993. */
    if( _mktime64( &xmas ) != (__time64_t)-1 )
   printf( "Christmastttt%sn", asctime( &xmas ) );

    /* Use time structure to build a customized time string. */
    today = _localtime64( 

Sample Output
OS time:                                14:15:49 OS date:                                02/07/02 Time in seconds since UTC 1/1/70:       1013120149 UNIX time and date:                     Thu Feb 07 14:15:49 2002 Coordinated universal time:             Thu Feb 07 22:15:49 2002 12-hour time:                           02:15:49 PM Plus milliseconds:                      455 Zone difference in hours from UTC:      8 Time zone name:                         Pacific Standard Time Daylight savings:                       NO Christmas                               Sat Dec 25 12:00:00 1993