您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关C++输出当前日期时间的方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
首先介绍2个数据类型。
一个是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;       // 夏令时
};然后是3个与时间处理相关的函数,
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  | 
%%  | 一个 % 符号  | %  | 
4行代码实现在屏幕输出当前时间:
char str[50]; time_t now = time(NULL); strftime(str, 50, "%x %X", localtime(&now)); cout << str << endl;
关于C++输出当前日期时间的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。