zoukankan      html  css  js  c++  java
  • [转]VC++中CTime类format的使用

    From: http://www.cnblogs.com/chenhs/archive/2008/08/19/1270763.html

            
           使用CTime类可以很方便地取得当前系统时间并转换为各种格式
          
    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 codeMeaning
    %#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

    RoutineRequired headerCompatibility
    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:tttt%sn", tmpbuf );
    _strdate( tmpbuf );
    printf( "OS date:tttt%sn", tmpbuf );

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

    /* Display UTC. */
    gmt = _gmtime64( &ltime );
    printf( "Coordinated universal time:tt%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: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( &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中参数的含义见上面的说明
  • 相关阅读:
    网站设计分析:模块化——高效重构
    linux 优化git操作速度
    cool
    跨域解决方案
    vue 登录验证引擎
    scss学习笔记
    配置动态加载模块和js分模块打包,生产环境和开发环境公共常量配置
    降低版本安装flashPlayer
    python 学习日志
    centos atomic host第一次启动
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/1872209.html
Copyright © 2011-2022 走看看