c++输出当前的时间


1. 时间相关数据类型#

一个是time_t,与时间函数相关的变量,定义的变量记录着自 1970 年 1 月 1 日以来经过的秒数,也称作时间戳。
另一个是结构体tm

struct tm {  int tm_sec; // 秒,范围从 0 到 59  int tm_min; // 分,范围从 0 到 59  int tm_hour; // 小时,范围从 0 到 23  int tm_mday; // 一月中的第几天,范围从 1 到 31  int tm_mon; // 月份,范围从 0 到 11  int tm_year; // 自 1900 起的年数  int tm_wday; // 一周中的第几天,范围从 0 到 6  int tm_yday; // 一年中的第几天,范围从 0 到 365  int tm_isdst; // 夏令时 }; 

2. 时间相关处理函数#

time_t time(time_t *time); 

一般使用time(NULL)即可,可得到当前时区的时间戳。

struct tm *localtime(const time_t *timer); 

将time_t类型转换为本地时间的 tm 结构的指针。

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 

str -- 这是指向目标数组的指针,用来复制产生的 C 字符串。
maxsize -- 这是被复制到 str 的最大字符数。
format -- 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为表示 tm 中所指定时间的相对应值。
格式说明符:

说明符 含义 实例
%a 缩写的星期几名称 Sun
%A 完整的星期几名称 Sunday
%b 缩写的月份名称 Mar
%B 完整的月份名称 March
%c 日期和时间表示法 Sun Aug 19 02:56:02 2012
%d 一月中的第几天(01-31) 19
%H 24 小时格式的小时(00-23) 14
%I 12 小时格式的小时(01-12) 05
%j 一年中的第几天(001-366) 231
%m 十进制数表示的月份(01-12) 08
%M 分(00-59) 55
%p AM 或 PM 名称 PM
%S 秒(00-61) 02
%U 一年中的第几周,以第一个星期日作为第一周的第一天(00-53) 33
%w 十进制数表示的星期几,星期日表示为 0(0-6) 4
%W 一年中的第几周,以第一个星期一作为第一周的第一天(00-53) 34
%x 日期表示法 08/19/12
%X 时间表示法 02:50:06
%y 年份,最后两个数字(00-99) 01
%Y 年份 2012
%Z 时区的名称或缩写 CDT
%% 一个 % 符号 %

3. 代码实现#

char str[50];
time_t now = time(NULL);
strftime(str, 50, "%x %X", localtime(&now));
cout << str << endl;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM