首頁 > 後端開發 > Python教學 > 如何在 Python 中將 UTC 日期時間字串轉換為本機時區?

如何在 Python 中將 UTC 日期時間字串轉換為本機時區?

Patricia Arquette
發布: 2024-12-21 18:53:09
原創
405 人瀏覽過

How to Convert a UTC Datetime String to Local Timezone in Python?

將 UTC 日期時間字串轉換為本地日期時間

開發人員經常遇到跨時區轉換時間的需要。例如,Android 應用程式可能會將時間戳記資料傳送到伺服器應用程序,這需要將資料儲存在正確的本地時區的內部系統中。這涉及將傳入的 UTC 時間戳轉換為適當的本地時間。

轉換挑戰

首次嘗試將 UTC 時間戳轉換為日期時間物件可能會導致時間不正確抵銷。預設情況下,程式設計中使用的底層日期時間物件通常是“幼稚的”,這意味著它們沒有明確指示其時區引用。要解決此問題,需要明確指定時區資訊。

時區資訊的建議儲存

在執行轉換之前,儲存使用者的首選時區資訊非常重要。這可以是字串表示形式(例如,EST 的“-5:00”)或符合廣泛接受的 Olson 資料庫的規範名稱(例如“America/New_York”)。

使用Python-dateutil 庫

Python-dateutil 庫提供了方便的 tzinfo 實現,可以用來輕鬆處理這些轉換。

這是一個示範轉換的範例:

# Import the necessary libraries
from datetime import datetime, strptime
from dateutil import tz

# Convert UTC datetime string to a datetime object with UTC timezone
utc_string = "2011-01-21 02:37:21"
utc_datetime = strptime(utc_string, '%Y-%m-%d %H:%M:%S')
utc_datetime = utc_datetime.replace(tzinfo=tz.tzutc())

# Create a timezone object for the desired local time
local_timezone = tz.gettz('America/New_York')

# Convert the UTC datetime object to the local timezone
local_datetime = utc_datetime.astimezone(local_timezone)

# Print the converted local datetime
print(local_datetime)
登入後複製

在此範例中,假設 utc_string 為 UTC 格式,並且轉換完成到 America/New_York 時區。考慮到任何適用的時間偏移和夏令時規則,產生的 local_datetime 將進行相應調整。

以上是如何在 Python 中將 UTC 日期時間字串轉換為本機時區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板