T********i 发帖数: 2416 | |
w***g 发帖数: 5958 | 2 indeed. 我前两天还中过一个招,mktime的tm_year是从1900开始的。
【在 T********i 的大作中提到】 : https://github.com/HowardHinnant/date/issues/638
|
T********i 发帖数: 2416 | 3 用这个库吧。还是靠谱的。作者是个老司机。
这是将来要进入Cpp20标准库的。
目前唯一的问题就是Linux的tzdata数据库编译的时候要用-b fat选项。对你不是问题
。我自己的固件要改一下script。
【在 w***g 的大作中提到】 : indeed. 我前两天还中过一个招,mktime的tm_year是从1900开始的。
|
s******e 发帖数: 3 | 4 某些嵌入系统的epoch从2000-01-01 起算 |
s*i 发帖数: 5025 | 5 的确如此。好几个原因:
1. 人为的时区的概念
2. 人为的夏时制概念
3. 人以地球自转定义为一天,公转定义为一年。自转跟公转之间又不是365的绝对关系
。为了迁就人类,不得不搞出闰年,还有闰秒一类的。
这三个因素混在一起(而且人可以随时制定法律变夏时制),计算机不得不维护一个时
区的数据库而不是一个可以用Pure Function运算的东东。
【在 T********i 的大作中提到】 : https://github.com/HowardHinnant/date/issues/638
|
T********i 发帖数: 2416 | 6 主要是我需要自己维护一个Linux distribution。类似red hat之类。这是Linux层面的。
我的IoT OS层面,全世界的用户和程序员今后可以理所当然地不需要操心。
1. 第一次配置中控的时候,在手机上自动定位经纬度和时区,发送给Hub
2. 以后随时可以更改Hub的经纬度和时区,而且时区名字要用手机的缺省本地语言显示。
3. 所有的IoT设备,UTC & Local Time自动track。提供UTC/local time API
tzdb 2020年格式竟然变了。以前缺省都是fat,现在缺省是slim了。
Hub/device最新固件更新了。就因为这个tzdb,折腾了3天。
【在 s*i 的大作中提到】 : 的确如此。好几个原因: : 1. 人为的时区的概念 : 2. 人为的夏时制概念 : 3. 人以地球自转定义为一天,公转定义为一年。自转跟公转之间又不是365的绝对关系 : 。为了迁就人类,不得不搞出闰年,还有闰秒一类的。 : 这三个因素混在一起(而且人可以随时制定法律变夏时制),计算机不得不维护一个时 : 区的数据库而不是一个可以用Pure Function运算的东东。
|