我有一个带有时间戳的数据集,格式为:
`'4/17/2020 5:55:00 AM'`
请注意,YYYY和HH之间有2个空格字段。原始时间在'US / Eastern'时区中。我正在尝试将其转换为IST(印度标准时间)。这应该是来自[[pytz
的“亚洲/加尔各答”下面的代码不起作用,我已经尝试了多个版本。甚至无法转换为UTC
。代码块是:`
est_ts = '4/17/2020 5:55:00 AM'
est = pytz.timezone('US/Eastern')
ist = pytz.timezone('Asia/Kolkata')
print(dt.datetime.strptime(est_ts, '%m/%d/%Y %I:%M:%S %p').astimezone(ist).strftime('%Y-%m-%d %H:%M:%S'))
`
这将输出:
`2020-04-17 07:25:00`
虽然正确的输出应该是:
`2020-04-17 15:25:00`
此代码有什么问题?非常感谢。
localize
原始时间戳,以便您可以normalize
到所需的位置:import datetime as dt
import pytz
est_ts = '4/17/2020 5:55:00 AM'
est = pytz.timezone('US/Eastern')
ist = pytz.timezone('Asia/Kolkata')
est_dt = est.localize(dt.datetime.strptime(est_ts, '%m/%d/%Y %I:%M:%S %p'))
ist_dt = ist.normalize(est_dt.astimezone(ist))
print(ist_dt.strftime('%Y-%m-%d %H:%M:%S'))
#2020-04-17 15:25:00