如何解决将utc中的Python datetime对象转换为本地时间
我想向用户显示SSL证书的到期日期。这些到期日期都采用UTC,因此,当到期日期为今天中午时,它将显示12/08/2020 12:00:00
。但是,由于我位于柏林时区,所以该证书实际上将在当地时间14:00:00过期,这是我想向用户显示的内容。我尝试了以下方法:
end_date = certificate_end_date.replace(tzinfo=timezone.utc).astimezone(tz=None)
但是由于证书在2045年之前有效,因此会产生以下错误消息:
OverflowError: timestamp out of range for platform time_t
我进行了搜索,人们建议只使用timedelta,但这又由于夏令时而变得复杂。必须有适当的方法来做到这一点吗?我正在使用Python3.7。
解决方法
我通过计算在其他地方建议的时间增量来解决了这个问题,尽管它对我来说看起来仍然很丑陋:
from datetime import datetime,timezone
now = datetime.now()
offset = now.replace(tzinfo=timezone.utc) - now.astimezone(timezone.utc)
localtime = utc_time + offset
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。