簡體   English   中英

如何使用datetime.fromtimestamp()將UTC時間格式轉換為正確的時區(變量)?

[英]How to use datetime.fromtimestamp() to convert the UTC time format into the correct timezone (a variable)?

我正在使用Darksky API構建天氣預報網站(文檔: https ://darksky.net/dev/docs#forecast-request),我想使用weather.json()['current'] ['timezone' ]使用datetime.fromtimestamp(weather.json()['current'] ['timezone'將Unix時間轉換為城市給出的時區(例如,輸入是墨西哥城,我想在墨西哥城的時間) 。])的strftime( ' - %H')。 我還需要添加什么? 或者我可以嘗試用什么其他方法?

我試過簡單

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

位置是城市的位置(是的,它是一個f字符串)

輸出是在UTC時間,但我希望時區(正確格式化為H:M:S)中的城市所在的時間

沒有錯誤信息,只是我想要操作的輸出(我是datetime模塊的新手)

你可以通過以下方式這樣做:

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")

PS:你必須通過pip / conda安裝tzlocal庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM