如何将EWS获取的datetime_received从UTC+0转换为GMT+2时区
EWS接口邮件接收时间时区转换方案
需要将EWS接口获取的收件箱邮件datetime_received字段从UTC+0时区转换为GMT+2时区,原有测试代码如下:
credentials = Credentials(email, wachtwoord) acc = Account(email, credentials=credentials, autodiscover=True) for item in acc.inbox.all().order_by('-datetime_received')[:100]: print(item.datetime_received) # 输出:2021-13-09 11:08:31+00:00 # 预期输出:2021-13-09 13:08:31+02:00
解决方案
借助pytz库指定GMT+2对应的目标时区,调用astimezone()方法转换带时区信息的时间对象即可,完整实现代码如下:
from datetime import datetime import pytz credentials = Credentials(email, password) acc = Account(email, credentials=credentials, autodiscover=True) tz = pytz.timezone('Europe/Amsterdam') for item in acc.inbox.all().order_by('-datetime_received')[:100]: dt = item.datetime_received.astimezone(tz) print(dt)
内容的提问来源于stack exchange,提问作者Minimumspace
相关产品推荐
相关产品推荐

