CTime类format的使用

  • 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 onLC_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

    <time.h>

    ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP

    wcsftime

    <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:/t/t/t/t%s/n", tmpbuf );
        _strdate( tmpbuf );
        printf( "OS date:/t/t/t/t%s/n", tmpbuf );

        /* Get UNIX-style time and display as number and string. */
        _time64( &ltime );
        printf( "Time in seconds since UTC 1/1/70:/t%ld/n", ltime );
        printf( "UNIX time and date:/t/t/t%s", _ctime64( &ltime ) );

        /* Display UTC. */
        gmt = _gmtime64( &ltime );
        printf( "Coordinated universal time:/t/t%s", asctime( gmt ) );

        /* Convert to time structure and adjust for PM if necessary. */
        today = _localtime64( &ltime );
        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:/t/t/t/t%.8s %s/n",
           asctime( today ) + 11, ampm );

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

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

        /* Use time structure to build a customized time string. */
        today = _localtime64( &ltime );

        /* 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

     简单点的如下: 

     CString msg1="aaaaaaaaaaa"; 

     

        KillTimer(1);    

     

      CTime t = CTime::GetCurrentTime(); 

      char szTime[8]; 

      int nHour = t.GetHour(); 

      int nMinute = t.GetMinute(); 

      int nSecond = t.GetSecond(); 

        wsprintf(szTime, "%02i:%02i:%02i", nHour, nMinute,nSecond);//分秒一般习惯用两位表 

      m_edit1=szTime; 

      UpdateData (FALSE); 

      SetTimer(1, 1000,NULL); 

      msg1=t.Format("%d-%m-%y");   //可以看到format的功能 

       MessageBox(msg1); 

     

    format中参数的含义见上面的说明 

     

    源文档 <http://www.cnblogs.com/Richinger/archive/2005/04/07/133162.html>

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值