最近做了一个单片机的项目,采用外接RTC模块,而外接模块只有年月日时分秒寄存器,需要用到时间戳对发生的事件和日志做记录。于是就想做一个使用在单片机上的UTC转Unix时间戳的库。
先说一下什么是UTC时间,UTC是Coordinated Universal Time缩写,中文又称协调世界时。在了解UTC时间系统的时候,还有一个叫GMT的时间系统,GMT中文称为格林威治标准时间。严格意义上来说UTC是最接近GMT的,但是对于大多数用途来说,UTC时间是可以与GMT时间进行互换的。目前GMT时间已不再被科学界所确定。更多的关于UTC时间的介绍请移步https://en.wikipedia.org/wiki/Coordinated_Universal_Time,哈哈,作者偷个懒
搞清楚什么是UTC时间之后,我们就需要知道另一个概念Unix时间戳,什么是Unix时间戳呢,看一下定义:Unix时间戳是从1970年1月1日(UTC的午夜),可以理解为1970年1月1日 00:00:00,开始所经过的秒数,不考虑闰秒。有童鞋会问什么是闰秒,简单的来说,地球由于自身的自转在变慢,每一天并不是真的只有86400秒,每天慢一点,每天慢一点,过了很多年就慢出了一秒来了,那这一秒要怎么处理呢,当然是加进去了,这就是闰秒。更多详细信息,请移步上述链接。
搞清楚以上的概念之后呢,我们就来搞清楚我们的问题是什么:
- 将Unix时间戳转换为对应时区的UTC时间;
- 将对应时区的UTC时