格式化一个时间字符串
Article last modified on 2002-4-30
----------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++ 6.0
----------------------------------------------------------------
具体的用法范例: #include <Time.h> ////////////////////////////////////////////////////////////////////// // // STL的常用头文件和声明: // ////////////////////////////////////////////////////////////////////// #pragma warning(disable:4786) #include <string> using namespace std; // ////////////////////////////////////////////////////////////////////// // // 构造出当前时间的字符串 // void CurrentTimeStr(string *pstrTimeString, BOOL bWantMore) { char szTimeString[128]; memset(szTimeString, 0, 128); 使用的结构tm的说明: 在WCHAR.H中定义: #ifndef _TM_DEFINED struct tm { int tm_sec; /* seconds after the minute - [0,59] */ int tm_min; /* minutes after the hour - [0,59] */ int tm_hour; /* hours since int tm_mday; /* day of the month - [1,31] */ int tm_mon; /* months since January - [0,11] */ int tm_year; /* years since 1900 */ int tm_wday; /* days since Sunday - [0,6] */ int tm_yday; /* days since January 1 - [0,365] */ int tm_isdst; /* daylight savings time flag */ }; #define _TM_DEFINED #endif struct tm *today; time_t类型是在WCHAR.H中定义: #ifndef _TIME_T_DEFINED typedef long time_t; #define _TIME_T_DEFINED #endif time_t ltime; 定义在Time.H中 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(); 定义在Time.H中 Get UNIX-style time and display as number and string. time( <ime ); 这个函数的定义是: struct tm * __cdecl localtime(const time_t *); 它主要是用来Use time structure to build a customized time string and correct for the local time zone. 它将返回一个指针,指向tm的结构,如果这个时间值是早于1970年1月1日午夜的,则会返回NULL。 today = localtime( <ime ); strftime指定的第一个参数就是目标字符串,第二个参数就是该目标字符串的最大 长度; 第三个参数将制定格式化的定义; 第四个参数是时间结构tm 下面说明格式化命令的含义: %m Month as decimal number (01 – 12) %d Day of month as decimal number (01 – 31) %H Hour in 24-hour format (00 – 23) %M Minute as decimal number (00 – 59) %S Second as decimal number (00 – 59) strftime( szTimeString, 128, "=时间: %m月%d日%H时%M分%S秒 ", today ); (*pstrTimeString).append(szTimeString); } // |