在Python中将字符串(带时区)转换为日期时间

时间:2020-02-27 10:26:13

标签: python datetime datetime-conversion

我打算转换

stringtime = '2020-02-30 10:27:00+01:00'

以便我可以将其与

进行比较
nowtime = datetime.datetime.utcnow()

使用

if nowtime > stringtime:
    print(1)

我尝试了strptime

datetime.datetime.strptime(stringtime, '%Y-%m-%d %H:%M:%S')

但是在strptime文档中找不到时区的格式规范。

我也尝试过

pandas.Timestamp(stringtime)

但是我得到ValueError: could not convert string to Timestamp

这怎么办?

2 个答案:

答案 0 :(得分:2)

datetime.datetime.strptime(stringtime, '%Y-%m-%d %H:%M:%S%z')

将为您提供预期的结果%z是格式(仅适用于Python3),但是您的原始日期无效,因为二月没有30天:)

答案 1 :(得分:1)

首先:您的stringtime错误,不存在2月30日。 ;)

您可以使用dateutil来实现自己的目标:

import dateutil.parser
stringtime = '2020-03-30 10:27:00+01:00'
dateutil.parser.isoparse(stringtime)
# datetime.datetime(2020, 3, 30, 10, 27, tzinfo=tzoffset(None, 3600))
相关问题