python - 在 Python 中转换时间戳字符串的问题
问题描述
我有一个带有时间戳的数据集,格式如下:
`'4/17/2020 5:55:00 AM'`
请注意,YYYY 和 HH字段之间有2 个空格。原始时间在“美国/东部”时区。我正在尝试将其转换为IST (Indian Standard Time)。这应该是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
推荐阅读
- javascript - 为 react 中的组件创建一个自定义 onChange 函数作为参数,该函数接受 2 个自定义参数
- debugging - devenv 忽略断点
- python - R 捕获段错误地址 0xc,导致“内存未映射”
- django - Django ListView 工作,但 DetailView 不显示模型数据
- python - 回调后更改页面布局 - 破折号
- sql - 在 SQL Server 中的 2 个表上选择
- c# - ExecuteScalar 在应该有一个值时不返回值
- javascript - 为什么即使在加载状态后,此图像也不会出现在浏览器中?
- javascript - 嗨,为什么这会返回 typeError,但事实并非如此?
- amazon-web-services - 云和本地 b2b 应用程序的部署架构