使用 tz 數據庫(更多信息: https://data.iana.org/time-zones/tz-link.html和https://en.wikipedia.org/wiki/Tz_database )。我經常需要將時間戳從一個時區轉換到另一個時區,但不能簡單地應用偏移量,但是必須查找偏移量來轉換時間戳是很耗時的。此外,由於某些位置有夏令時而其他地方沒有,因此需要額外的工作,並且夏令時的開始/結束日期是特定於位置的。
這個函數可能是這樣的:
ConvertTimeZone( ts, tzFrom, tzTo ) //ts is the time stamp will be converted from tzFrom to tzTo
//example
ConvertTimeZone( 05May2022:19:31:07, "UTC", "America/Los_Angeles" ) //result: 05May2022:12:31:07
理想情況下,所有日期時間值都將更改為包含時區,並設置為默認的 UTC(如果未指定)。
每個時區應使用 TZ 數據庫名稱 ( https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ),就像在其他編程語言中使用的一樣(例如:Python)。
這是一個關於這個問題的問題: https://community.jmp.com/t5/Discussions/Time-zone-conversion/mp/331514#M58032
有關時區問題的非常幽默的描述,請觀看此視頻: https://www.youtube.com/watch?v=-5wpm-gesOY&t=3s . 它長達 10 分鐘,但非常值得*時間*(請原諒雙關語)。
不錯的視頻參考,謝謝。
ESP32 時鐘中的 JSL BLOB討論了一些時區問題。 製作後我也簡要了解了國際日期變更線這個視頻底部邊緣有兩個日期名稱。
與時間一起工作真的很難。