CTime之Format

来源:互联网 发布:淘宝运营团队职责 编辑:程序博客网 时间:2024/06/07 00:35

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 ofstrftime.(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 codeMeaning%#a, %#A, %#b,%#B, %#p, %#X, %#z,%#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I,%#j, %#m, %#M, %#S,%#U, %#w, %#W, %#y,%#YRemove leading zeros (if any).

Requirements

RoutineRequired headerCompatibilitystrftime<time.h>ANSI, Win 98, Win Me, Win NT, Win 2000, Win XPwcsftime<time.h> or <wchar.h>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 <time.h>#include <stdio.h>#include <sys/types.h>#include <sys/timeb.h>#include <string.h>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( <ime );    printf( "Time in seconds since UTC 1/1/70:t%ldn", ltime );    printf( "UNIX time and date:ttt%s", _ctime64( <ime ) );    /* Display UTC. */    gmt = _gmtime64( <ime );    printf( "Coordinated universal time:tt%s", asctime( gmt ) );    /* Convert to time structure and adjust for PM if necessary. */    today = _localtime64( <ime );    if( today->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( <ime );    /* Use strftime to build a customized time string. */    strftime( tmpbuf, 128,         "Today is %A, day %d of %B in the year %Y.n", today );    printf( tmpbuf );}


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

0 0