在 Python 中转换时间戳字符串时出现问题
Problem in converting timestamp string in Python
我有一个时间戳格式的数据集:
`'4/17/2020 5:55:00 AM'`
请注意 YYYY 和 HH 字段之间有 2 个空格。原始时间在 'US/Eastern' 时区。我正在尝试将其转换为 IST(印度标准时间)。这应该是来自 pytz
的 'Asia/Kolkata'
下面的代码无效,我已经尝试了多个版本。即使转换为 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<b>.localize(dt.datetime.strptime(est_ts, '%m/%d/%Y %I:%M:%S %p'))</b>
ist_dt = ist<b>.normalize(est_dt.astimezone(ist))</b>
print(ist_dt.strftime('%Y-%m-%d %H:%M:%S'))
#2020-04-17 15:25:00
我有一个时间戳格式的数据集:
`'4/17/2020 5:55:00 AM'`
请注意 YYYY 和 HH 字段之间有 2 个空格。原始时间在 'US/Eastern' 时区。我正在尝试将其转换为 IST(印度标准时间)。这应该是来自 pytz
的 'Asia/Kolkata'下面的代码无效,我已经尝试了多个版本。即使转换为 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<b>.localize(dt.datetime.strptime(est_ts, '%m/%d/%Y %I:%M:%S %p'))</b>
ist_dt = ist<b>.normalize(est_dt.astimezone(ist))</b>
print(ist_dt.strftime('%Y-%m-%d %H:%M:%S'))
#2020-04-17 15:25:00