CTime类format的使用

 
        
       使用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.
%#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 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);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值