簡體   English   中英

如何以TZ格式檢索系統時區.net c#

[英]How to retrieve the system timezone in TZ format .net c#

我正在嘗試研究如何在Windows上以( TZ )格式檢索當前系統時區,即。 America / New_York,我需要將此提供給此應用程序與之通信的API。

我正在使用

TimeZone.CurrentTimeZone

這給了我這個輸出

GMT Standard Time

我希望得到的是類似的東西

Europe/London

我錯過了一些簡單的東西,或者這是不可用的,因此這是否意味着我需要自己進行轉換?

我建議使用NodaTime

您可以像這樣獲得系統的時區:

DateTimeZone tz = DateTimeZoneProviders.Tzdb.GetSystemDefault();

如果您使用tz.ToString() ,它將根據您的需要獲得IANA時區

(除此之外,它是一個非常好的開源庫,可以處理IMHO中的時區,日期時間,瞬間和日歷,比內置的.NET DateTime類更加結構化和可靠。)

NodaTime得到了SO的一些高代表用戶的維護和良好支持;)。


有關信息,您獲得並且不需要的輸出(.NET使用的輸出)稱為BCL時區,但您需要IANA時區(或TZDB)(更准確)

Noda Time是一個很好的選擇。 與.NET內置的內容相比,它是一個更好,更全面的API,用於處理日期,時間和時區。

但是,如果以IANA TZDB格式獲取系統時區是您在此空間中唯一做的事情,您可能會發現使用我的TimeZoneConverter庫更加簡單。

string tz = TZConvert.WindowsToIana(TimeZoneInfo.Local.Id);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM