[C语言]时间戳

2024-01-02 07:27:57

时间戳的概念

时间戳就是定义一个时间点作为0秒, 之后每过一秒依此加一, 将当前的时间戳换算成年月日, 再加上起点, 获得的就是现在时刻的时间. 根据地球时区的偏移, 比如北京时间是东八区, 做一个偏移量的加减.

0起点: 1900年1月1日0时0分0秒.

0偏移地点: 英国伦敦

时间戳存储器: 现在常见的时间戳存储在32位或者64位整型变量中, 或许是有符号, 或许是无符号. 世界上所有的时间戳(秒计数器)都是一样的, 换算结束再根据时区做偏移运算.

时间划分标准: GMT, UTC.?

?GMTGreenwich Mean Time)格林尼治标准时间是一种以地球自转为基础的时间计量系统。它将地球自转一周的时间间隔等分为24小时,以此确定计时标准.

?UTCUniversal Time Coordinated)协调世界时是一种以原子钟为基础的时间计量系统。它规定铯133原子基态的两个超精细能级间在零磁场下跃迁辐射9,192,631,770周所持续的时间为1秒。当原子钟计时一天的时间与地球自转一周的时间相差超过0.9秒时,UTC会执行闰秒来保证其计时与地球自转的协调一致.

C标准库

参考链接:?

https://cplusplus.com/reference/ctime/ctime/?

C标准库为我们获取时间, 时间戳转化年月日都提供了非常标准的API函数来让我们调用.

头文件: <time.h>

变量类型:?

time_t类型

typedef? ? ?__time64_t? ? ?time_t;

typedef? ? ?__int64? ? ? ? ? ?__time64_t;

#define? ? ?__int64? ? ? ? ? ?long long

struct tm类型

struct tm {

? ? int tm_sec;????????????????//秒

? ? int tm_min;? ? ? ? ? ? ? ? //分

? ? int tm_hour;? ? ? ? ? ? ? //小时??

? ? int tm_mday;? ? ? ? ? ? //日

? ? int tm_mon;? ? ? ? ? ? ? //月, 需要手动加1

? ? int tm_year;? ? ? ? ? ? ? ???//年, 需要手动加1900

? ? int tm_wday;? ? ? ? ? ? ? ?//星期?

? ? int tm_yday;? ? ? ? ? ? ? ? //这个月的第几天, 需要手动加1(不用)

? ? int tm_isdst;? ? ? ? ? ? ? ? //夏令时标志(不用)

? };

常用函数:?

time_t time (time_t* timer); //获取当前时间戳
time_t currentTime;
time(&currentTime);//获取当前时间戳

struct tm * localtime (const time_t * timer); //根据时间戳转换为本地时间

char* ctime (const time_t * timer); //将时间戳转换成字符串

获取当前时间代码?

????struct tm * localTime;? ? ? ? //时间结构体

? ? time_t currentTime;? ? ? ? ? //时间戳

? ? time(&currentTime);//获取当前时间戳

? ? localTime = localtime(&currentTime); //获取当前时间, 存到结构体中.

? ? printf("当前时间:%s\n", ctime(&currentTime));

? ? printf("%d.%d.%d %d:%d:%d\n", localTime->tm_year + 1900, localTime->tm_mon + 1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? localTime->tm_mday, localTime->tm_hour,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? localTime->tm_min, localTime->tm_sec);

? ? printf("星期:%d, 本月第 %d 天, 夏令时标志 %d\n", localTime->tm_wday,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? localTime->tm_yday + 1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? localTime->tm_isdst);

文章来源:https://blog.csdn.net/qq_46129738/article/details/135331821
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。