时间接口
本机时间 = utc + timezone
time
获取系统的utc时间,即从1970-1-1 0:0:0开始的秒数,用长整型表示这一时间。用time获取到的时间包含了系统设置的时区。
gmtime
传入time中获得的时间,获取到struct tm表示的时间形式。用这个接口拿到的tm是0时区的tm信息。这个信息存在全局变量里面,没有保护,使用时要注意多线程问题。
localtime
传入time中获得的时间,获取到struct tm表示的时间形式。和gmtime不同的是,这个接口拿到的tm是包含了时区的。
ctime
传入time中获得的时间,获得对应的字符串。
asctime
传入struct tm,获取对应的字符串。
后记
1,这系列的接口都有一个xxx_r的版本,主要区别是传入了自定义的buffer,避免了使用库自定义全局变量带来的风险。
2,实际时间显示 = utc + timezone + dst。夏令时有时候也需要考虑。夏令时是以太阳为衡量指标的时间。比如:当前4点,但是太阳高升像早上。那么就将时钟拨快2小时设置为6点,这就是夏令时。当太阳活动正常后,将时钟回拨2h,时间回到正常,夏令时结束的前两个时刻必然会走两边,这是需要注意的地方。