在Python中转换时间戳字符串的问题

问题描述 投票:1回答:1

我有一个带有时间戳的数据集,格式为:

`'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`

此代码有什么问题?非常感谢。
python python-3.x datetime datetime-format python-datetime
1个回答
3
投票
您首先需要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

© www.soinside.com 2019 - 2024. All rights reserved.