首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将时间戳转换为Python中的另一个时区

将时间戳转换为Python中的另一个时区
EN

Stack Overflow用户
提问于 2020-08-04 09:51:03
回答 1查看 884关注 0票数 0

我有一个时间戳(1596526195),它在GMT+2 (2020-08-04 11:29:55)中,我想把它转换成GMT-5,所以应该是2020-08-04 04:29:55

现在,我的脚本是:

代码语言:javascript
复制
import pytz
from datetime import datetime

time_zone = "Etc/GMT-5"
ts = 1596533395 
ts_date = datetime.fromtimestamp(ts)
print(ts_date)  # 2020-08-04 11:29:55+00:00
ts_date_converted = pytz.utc.localize(ts_date).astimezone(pytz.timezone(time_zone))
print(ts_date_converted)  # 2020-08-04 16:29:55+05:00

我看到两个问题:

  1. 默认情况下,python使用ts作为GMT+0。如何告诉python将此ts读入GMT+2?我不想转换它,因为在这种情况下它会改变ts_date,不是吗?ts_date应该是2020-08-04 11:29:55+02:00,而不是2020-08-04 09:29:55+00:00
  2. 为什么我在GMT+5中有一个结果,而我却试图在GMT-5中转换?我相信ts_date_converted应该是2020-08-04 04:29:55-05:00

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-08-04 10:16:49

datetime.fromtimestamp接受一个参数tz,它允许您提供时区信息,请参阅医生们。此外,如果您只使用UTC偏移量,则不需要第三方库。您可以简单地从一个timezone构造一个timedelta

代码语言:javascript
复制
from datetime import datetime, timezone, timedelta

ts = 1596533395 
dt_UTCplus2 = datetime.fromtimestamp(ts, tz=timezone(timedelta(hours=2)))
print(dt_UTCplus2)
# 2020-08-04 11:29:55+02:00

dt_UTCminus5 = dt_UTCplus2.astimezone(timezone(timedelta(hours=-5)))
print(dt_UTCminus5)
# 2020-08-04 04:29:55-05:00

如果您使用时区而不是UTC偏移量,我建议您使用丁香醇 (pytz将与Python3.9版本一起使用)或区域信息 for Python3.9+:

代码语言:javascript
复制
from datetime import datetime
from dateutil import tz

ts = 1596533395 
dt_UTCplus2 = datetime.fromtimestamp(ts, tz=tz.gettz("Etc/GMT-2"))
print(dt_UTCplus2)
# 2020-08-04 11:29:55+02:00

dt_UTCminus5 = dt_UTCplus2.astimezone(tz.gettz("Etc/GMT+5"))
print(dt_UTCminus5)
# 2020-08-04 04:29:55-05:00
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63244312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档