作者alloc (大碗滷肉飯男孩)
看板C_and_CPP
標題[問題] 已知UTC時間 有什麼較方便的方法轉到另
時間Wed Oct 27 23:08:16 2021
如題,
今天我有一個Input UTC時間(2021-10-27T23:03:00Z),與TimeZone A。
要怎麼將時間從時區A轉到指定的時區B呢?
目前能想到及找到的方法是去解析輸入的UTC時間,轉換為time_t變數資料,
再看 Timezone的時差多少加上去,最後再用localtime()去轉回tm struct去做後續處理。
想問有沒有更有效率的做法呢?謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.70.181 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1635347298.A.620.html
推 Schottky: 就是這樣做,你這格式不能也不需要用 curl 幫忙 parse 10/28 10:08
→ Schottky: sscanf 就可以簡單拆成年月日時分秒了 10/28 10:09
推 LPH66: 是說 C++20 在 <chrono> 好像有一系列這方面的處理函數 10/28 12:13
→ LPH66: 不過處理出來就不是 struct tm 而是 chrono:: 下的東西 10/28 12:14
→ alloc: 感謝回覆 10/28 20:22
→ mars90226: 手動加時區不會沒考慮到日光節約時間嗎? 10/28 22:46
推 Schottky: 時區名稱是分開的,PST 是太平洋標準時間 (UTC-8) 10/28 23:11
→ Schottky: PDT 是太平洋日光節約時間 (UTC-7),不會混淆 10/28 23:12
→ Schottky: 但如果是自動切換日光節約時間那就超複雜了 10/28 23:12
→ Schottky: 還要考慮到各國的開始結束日期都不一樣的問題 10/28 23:12
→ Schottky: 美國人玩德國伺服器(或反之)就會遇到這個日期差異問題 10/28 23:13
→ Schottky: 那麼如果要靠現成 library 幫你做自動轉換,並不是每個 10/28 23:19
→ Schottky: library 都有這功能,就算有做也不見得有跟上最新法令XD 10/28 23:19
→ Schottky: 像美國的開始結束日期就調整過不只一次擴大夏令長度 10/28 23:20
推 mars90226: 原來如此,感謝S大解惑 10/29 00:01
→ alloc: 長知識了 感謝回覆 10/29 10:23
→ steve1012: 連parsing 都有了 10/30 14:22