python - 非 UTC 日期时间对象的时间戳两次减去小时
问题描述
我有以下时间戳1550588656
,转换为2019-02-19 15:04:16+00:00
UTC 时间约定。
我想将其转换为我所在国家/地区的时间约定(一年中的这个时候的 UTC 或 GMT -3),因此它应该转换为2019-02-19 12:04:16+00:00
我已阅读其他 SO 问题,首先我必须将时间戳转换为可感知 UTC 的 Datetime 对象,然后对其进行本地化,我正在这样做
# string format time
naive_datetime = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
# string parse time
naive_datetime = datetime.strptime(naive_datetime, "%Y-%m-%d %H:%M:%S")
# make naive Datetime object UTC aware
utc_datetime = naive_datetime.replace(tzinfo=pytz.UTC)
所以现在它不是一个天真的 Datetime 对象,从这里我应该能够将它本地化到我国家的时区。在Python中pytz.timezone('America/Santiago')
所以它应该是这样的
cltime = pytz.timezone('America/Santiago')
local_datetime = utc_datetime.astimezone(cltime)
但我得到2019-02-19 09:04:16-03:00
(UTC or GTM -6 ) 结果,我不知道为什么。
有人可以解释吗?我的直觉告诉我,这可能是一件我没有看的简单事情,但我已经花了几分钟时间,但我还不能说出来。
解决方案
推荐阅读
- css - CSS 表格排序将数字视为 Angular 中的字符串
- android - Android:虚拟数据数组列表
- nlp - Channels 与 Samples/Dimension 有何不同?
- pandas - 如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe
- javascript - HTML Datalist 中的动态数组
- spring-boot - Hazelcast 集群在 Eureka 上不可用
- awk - 使用 awk 提取信息
- laravel - 如何在laravel中进行身份验证之前动态更改数据库名称
- java - 使用 Java Regex 从未用符号分隔的日志文件中查找主机名
- iis - 为什么 IIS 授权似乎不拒绝访问用户组