如何使用datetime.fromtimestamp()将UTC时间格式转换为正确的时区(变量)?

2024-06-07 05:00:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用darkskyapi(docs:https://darksky.net/dev/docs#forecast-request)构建一个天气预报网站,我想使用天气.json()['current']['timezone']将Unix时间转换为城市给定的时区(例如,输入为墨西哥城,我想在墨西哥城的时间)使用datetime.fromtimestamp(天气.json()['当前']['时区'])。strftime('-%H')。我还需要补充什么?或者我还能想出什么别的办法?你知道吗

我试着简单地做

Time in {location}: {datetime.fromtimestamp(weather.json()['currently']['time']).strftime('%Y-%m-%d %H:%M:%S')}

Where location是城市(是的,它在f字符串中)

输出是UTC时间,但我想要城市所在时区的时间(格式正确为H:M:S)

没有错误消息,只是一个我想要操作的输出(而且我是datetime模块的新手)


Tags: httpsdevjsondocsdatetimenetrequest时间
1条回答
网友
1楼 · 发布于 2024-06-07 05:00:33

您可以通过以下方式执行此操作:

import datetime
import dateutil.tz as tz
import tzlocal

# dummy datetime in utc for testing    
utc_time = datetime.datetime.utcnow()

#get current timezone
local_zone = tzlocal.get_localzone().zone

#build timezone information to be removed
utc_zone_info = tz.gettz("UTC")

#build local timezone information to be set
local_zone_info = tz.gettz(local_zone)

#replace utc zone info
replaced_utc = utc_time.replace(tzinfo=utc_zone_info)

#update zone info of datetime object with local timezone
result_dt = replaced_utc.astimezone(tzinfo=local_zone_info).strftime("%H:%m:%S")

注意:你必须通过pip/conda安装本地库

相关问题 更多 >