我从包含多行日期的数据文件中解析日期(格式:YYYY-MM-DD HH:MM:SS)。
问题是数据包含闰秒,所以我无法使用datetime。我如何考虑闰秒(0-60),所以如果我使用上述格式的字符串中的datetime.strptime (因此,日期+时间),最后我会得到相同的结果,请?
我已经尝试过结合使用日期作为时间字符串的日期和时间。这是正确的方法还是有其他方法?
提前致谢。
我从包含多行日期的数据文件中解析日期(格式:YYYY-MM-DD HH:MM:SS)。
问题是数据包含闰秒,所以我无法使用datetime。我如何考虑闰秒(0-60),所以如果我使用上述格式的字符串中的datetime.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
可能会静默截断。60
59