从字符串中解析和合并日期和时间(包括闰秒)- Python

3
我从一个包含多个日期的数据文件中解析出一个日期(格式:YYYY-MM-DD HH:MM:SS)。问题在于,该数据包含闰秒,因此我无法使用datetime。请问如何考虑闰秒(0-60),以便最终结果与使用上述格式的字符串进行datetime.strptime相同,请?我已经尝试使用组合,使用日期和时间字符串的日期和时间。这是正确的方法还是还有其他方法?谢谢。
1个回答

1
只需使用time.strptime()函数:

Just use 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接