Mar*_*ero 8 python time datetime leap-second
python time和datetime模块在闰秒上返回什么?
如果我致电:23:59:60.5,我会得到什么:
time.time()datetime.datetime.utcnow()datetime.datetime.now(pytz.utc)另外,py2.7和py3之间有什么区别?
为什么它令人困惑(至少对我而言):
从日期时间文档我看到:
与时间模块不同,datetime模块不支持闰秒.
在时间文档上,我看到解析时有闰秒的"支持" strptime.但是没有评论time.time().
我看到使用time我得到:
>>> time.mktime(time.strptime('2016-06-30T23:59:59', "%Y-%m-%dT%H:%M:%S"))
1467327599.0
>>> time.mktime(time.strptime('2016-06-30T23:59:60', "%Y-%m-%dT%H:%M:%S"))
1467327600.0
>>> time.mktime(time.strptime('2016-07-01T00:00:00', "%Y-%m-%dT%H:%M:%S"))
1467327600.0
Run Code Online (Sandbox Code Playgroud)
然后datetime爆炸:
>>> dt.datetime.strptime('2016-06-30T23:59:60', "%Y-%m-%dT%H:%M:%S")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: second must be in 0..59
Run Code Online (Sandbox Code Playgroud)
那么在那个确切的时间(闰秒中间)我会得到什么?
我已经阅读过关于橡胶时代,时钟减速,重复几秒钟以及各种疯狂想法的内容,但我对python有什么期望呢?
注意:如果你想知道我是否有更好的关注它,那么闰秒即将来临!
seconds秒有时是手动安排的。当前,计算机时钟无法满足leap秒的要求。没有标准告诉他们预先插入一个。相反,计算机时钟会通过NTP协议定期重新同步其时间,并在插入leap秒后自动进行调整。
接下来,计算机时钟通常以秒为单位报告时间。datetime当将第二个计数转换为包括leap秒时,将由模块来调整其记帐。目前不这样做。time.time()只会自秒数起报告秒数。
因此,当the秒正式生效时,除了您的计算机时钟只有一秒钟的时间之外,不会发生任何其他变化。
与该问题datetime只盖表示闰秒的时间戳,它不能。无论如何,它不会被要求这样做。
| 归档时间: |
|
| 查看次数: |
1884 次 |
| 最近记录: |