最近介接金流需要回傳目前時間或截止時間,但擔心Server設定的時區可能不是台灣時區,所以為了以防萬一就先把時區轉換為台灣時區,再將時間傳送到金流端。
DateTimeOffset 轉換為+08:00時區
// 將時間指定轉換為 +08:00時區
DateTimeOffset taipeiStandardTimeOffset = DateTimeOffset.Now.ToOffset(new TimeSpan(8,0,0));
使用TimeZoneInfo.FindSystemTimeZoneById轉換DateTimeOffset 時區
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Taipei Standard Time");
DateTimeOffset taipeiStandardTimeOffset = DateTimeOffset.Now.ToOffset(timeZoneInfo.BaseUtcOffset);
FindSystemTimeZoneById 在Windows系統會根據id比對登錄編輯程式
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones
下的名稱。亦可參考Time Zone IDs。
在Linux 和 macOS環境下目前還沒有機會測試,有興趣的人可以參考TimeZoneInfo.FindSystemTimeZoneById(String) Method
參考資料
如有錯誤或建議,歡迎留言指教,謝謝!!
(相關內容如有侵犯隱私或著作權,請協助通知刪除,感謝)
沒有留言:
張貼留言