> os:system_time(seconds).
1470361698
这是正确的UTC时间戳,但我不确定它是否与系统相关。是吗?
如何确保在不同机器上运行的相同程序仍然可以在UTC时区运行?
答案 0 :(得分:2)
os:system_time
返回“OS系统时间”,其定义为大约“POSIX时间”,即自Epoch以来的秒数,定义为00:00:00 UTC,1970-01- 01,所以它应该总是返回“UTC时间戳”。 Erlang有关于Time Correction的优秀文档,请查看OS System Time和POSIX Time部分。
OS系统时间
POSIX时间的操作系统视图。要检索它,请致电
os:system_time()
。这可能是也可能不是POSIX时间的准确视图。通常可以向后和向前调整该时间而没有限制。也就是说,可以观察到时间扭曲。POSIX时间
时代以来的时间。 Epoch定义为00:00:00 UTC,1970-01-01。 POSIX时间中的一天被定义为正好86400秒长。奇怪的是,Epoch被定义为UTC的时间,UTC还有一天的定义。引用开放组“POSIX时间因此不一定是UTC,尽管它的外观”。这样做的结果是,当插入UTC闰秒时,POSIX时间要么停止一秒钟,要么重复最后一秒。如果将删除UTC闰秒(尚未发生),POSIX时间将向前推进一秒。