根据https://www.runoob.com/cplusplus/cpp-date-time.html编写。

首先介绍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;

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/NiGhT-Ray/p/13128404.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程