解析并组合字符串中的日期和时间(闰秒)-python



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

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

我已经尝试过使用组合,将日期用作日期,将时间用于时间字符串。这是正确的方式还是其他方式?

提前谢谢。

只需使用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,或者如果在间接(内部)调用中遇到闰秒,它可能会静默地将60截断为59

相关内容

  • 没有找到相关文章

最新更新