有一个现成的标准库time.h提供了常见的与时间相关的操作,游戏服务器中的时间库函数常常是以这个库为基础封装而来的。
一、time.h中常用的两种结构
time_t:秒为单位,整形
tm:包含了各种字段的结构,比如年月日,时分秒,星期等(分解结构)。
timespec和timeval:更高精度的时间
二、time.h中常用函数:
(1) time_t time(time_t *t);
获取时间的函数,返回从1970年1月1日 00:00:00到现在所经历的秒数。使用方法:
time_t t1 = time(NULL);
(2)time_t mktime(struct tm *);
把tm格式的时间转换为time_t格式
(3)char *asctime(const struct tm *timeptr)
显示时间字符串,参数是tm类型
(4)char *ctime(const time_t *timer)
显示时间字符串,参数是time_t类型
(5)strftime
把tm格式的转换为char*类型
(6)strptime
把char*类型转换为tm格式的
(7)gmtime和timegm
tm转为time_t
(8)localtime
time_t转为tm
...
三、几个名词
UTC:格林尼治时间,即0时区时间。
GMT:和UTC时间一致。
CST:代表中国,美国,澳大利亚或者古巴标准时间。
...
参考资料:
https://www.cnblogs.com/renjiashuo/p/6913668.html
https://www.cnblogs.com/Stultz-Lee/p/6699992.html
https://blog.csdn.net/yaojiawan/article/details/99233128
https://blog.csdn.net/natpan/article/details/81256288
https://blog.csdn.net/seucbh84/article/details/16116843
https://private.codecogs.com/library/computing/c/time.h/ctime.php?alias=timegm
https://www.runoob.com/cprogramming/c-function-localtime.html