3

我从包含多行日期的数据文件中解析日期(格式:YYYY-MM-DD HH:MM:SS)。

问题是数据包含闰秒,所以我无法使用datetime。我如何考虑闰秒(0-60),所以如果我使用上述格式的字符串中的datetime.strptime (因此,日期+时间),最后我会得到相同的结果,请?

我已经尝试过结合使用日期作为时间字符串的日期和时间。这是正确的方法还是有其他方法?

提前致谢。

4

1 回答 1

1

只需使用time.strptime()

#!/usr/bin/env python
import datetime as DT
import time
from calendar import timegm

utc_time_string = '2012-06-30 23:59:60'
utc_time_tuple = time.strptime(utc_time_string, "%Y-%m-%d %H:%M:%S")[:6]
utc_dt = DT.datetime(1970, 1, 1) + DT.timedelta(seconds=timegm(utc_time_tuple))
# -> datetime.datetime(2012, 7, 1, 0, 0)

如果输入时间不是UTC,那么您可以time_tuple手动处理闰秒,例如,如果您直接通过闰秒,datetime模块可能会引发 ,或者如果在间接(内部)调用中遇到闰秒,它ValueError可能会静默截断。6059

于 2016-05-18T22:06:30.680 回答