將 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中文網其他相關文章!