如何将以下本地化日期时间字符串转换为UTC日期时间 . 该字符串包含其中提到的日期,时间和时区,例如 May 15,2015, 04.24AM IST ,这里IST是印度标准时间 . 它可以是任何时区 . 我尝试使用pytz,但无法使其工作 .
2 回答
2
事情是它's quite difficult to parse a string with an abbreviated timezone information. But, if you know your timezone, then you can look up it'的名字被 pytz 认可 . 您甚至可以使用 pytz.all_timezones 列出所有时区名称 .
import pytz
import datetime
# String without timezone info
str = "May 15, 2015, 04.24AM"
# Parse it to naive time
dt = datetime.datetime.strptime(str, "%b %d, %Y, %I.%M%p")
# Localize it as Asia/Calcutta
dt_localized = pytz.timezone('Asia/Calcutta').localize(dt)
# Convert it to UTC
dt_utc = dt_localized.astimezone(pytz.timezone('UTC'))
2 回答
事情是它's quite difficult to parse a string with an abbreviated timezone information. But, if you know your timezone, then you can look up it'的名字被
pytz
认可 . 您甚至可以使用pytz.all_timezones
列出所有时区名称 .在你的情况下,它是'亚洲/加尔各答',这应该可以将其转换为UTC . 只需从字符串中删除时区信息,然后再添加:
我们得到:
首先,让我们删除IST时区的日期字符串,然后将其分配给亚洲/加尔各答时区 .
现在它可以识别时区,您可以将其分配给UTC时区: