2020-11-20 23:07:59.381081 +0000 UTC
我正在读取一个带有panda的csv文件,在数据帧中有一个时间戳列,它是对象。我无法转换为日期时间,也无法将+00000 UTC读取为格式
我尝试了以下方法:
datetimeObj = datetime.strptime('2020-11-21 22:16:25.389601 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %Z')
但是%Z给了我错误。任何建议初学者在蟒蛇&大熊猫世界?
您还必须在%z之前添加%z。
- %z表示形式为+HHMM或-HHMM的偏移量
- %Z表示时区名称
试试这个:
datetime_object = datetime.strptime('2020-11-20 23:07:59.381081 +0000 UTC', '%Y-%m-%d %H:%M:%S.%f %z %Z')
假设pandas DataFrame中有该格式的日期时间字符串,我建议删除+0000
,因为pd.to_datetime
不会同时解析+0000
和UTC
。
import pandas as pd
df = pd.DataFrame({'timestamp':["2020-11-20 23:07:59.381081 +0000 UTC"]})
df['datetime'] = pd.to_datetime(df['timestamp'].str.replace(" +0000", "", regex=False))
# df['datetime']
# 0 2020-11-20 23:07:59.381081+00:00
# Name: datetime, dtype: datetime64[ns, UTC]
为什么不去掉UTC
呢?与UTC偏移量+0000相比,它是明确的+0000也可能来自刚好在时间戳中表示的时间具有UTC+0的时区。