回答
不幸的是,我並不知道這樣做的簡單內置方式。但是,你可以把自己的東西放在一起。這裏有一個例子:
public static class TimeZoneInfoExtensions {
public static string Abbreviation(this TimeZoneInfo Source) {
var Map = new Dictionary<string, string>()
{
{"eastern standard time","est"},
{"mountain standard time","mst"},
{"central standard time","cst"},
{"pacific standard time","pst"}
//etc...
};
return Map[Source.Id.ToLower()].ToUpper();
}
}
使用方法如下:
string CurrentTimeZoneAbbreviation = System.TimeZoneInfo.Local.Abbreviation();
如果你需要更多的轉換,你可以只將它們插入地圖字典。
TimeZoneInfo.Id將是與[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones]中給定鍵匹配的字符串。如果您可以在線找到匹配的數據庫,包含相同的ID以及縮寫,則可以快速提取並導入對(例如,使用正則表達式)並將其放入Map字典中。
'Id'的可能值可以在註冊表中的HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Time Zone下找到(它們與http://www.timeanddate.com/library中的名稱不同/ abbreviations/timezones /) – dtb 2009-09-09 23:29:37
@dtb:謝謝。 – 2009-09-09 23:40:51
您可以編寫類似:
var abbr = System.TimeZoneInfo.Local.TimeZoneAbbr();
和輔助它:
public static class ConvertionHelper
{
public static String TimeZoneAbbr(this TimeZoneInfo zone)
{
var zoneName = zone.Id;/* zone.IsDaylightSavingTime(DateTime.UtcNow)
? zone.DaylightName
: zone.StandardName;*/
var zoneAbbr = zoneName.CapitalLetters();
return zoneAbbr;
}
public static String CapitalLetters(this String str)
{
return str.Transform(c => Char.IsUpper(c)
? c.ToString(CultureInfo.InvariantCulture)
: null);
}
private static String Transform(this String src, Func<Char, String> transformation)
{
if (String.IsNullOrWhiteSpace(src))
{
return src;
}
var result = src.Select(transformation)
.Where(res => res != null)
.ToList();
return String.Join("", result);
}
}
- 1. 如何從dns域名中獲得簡短的「域名」?
- 2. C#如何使用短名稱打開程序集(或只有短名稱時如何獲得強名稱)
- 3. 如何獲得句子中名詞短語之間的關係?
- 4. 如何獲得的最短名單列表在Haskell
- 5. 如何在喬達時間獲得簡短的月份名稱?
- 6. 如何獲得縮短的時區?
- 7. 如何在印度獲得短代碼?
- 8. 如何從vim中的long選項名獲得短期期權名稱
- 9. ElasticSearch短語前綴搜索 - 如何獲得匹配的短語?
- 10. 如何獲得名單
- 11. 如何獲得用戶名?
- 12. 如何獲得改名
- 13. 座GO短信獲得短信廣播
- 14. 如何獲得枚舉,當我只有一個簡短的顯示名稱?
- 15. 如何獲得本地化的短週日名稱(Mo/Tu/We/Th ...)
- 16. 如何獲得我的應用程序的專屬短信獲得許可
- 17. 如何用的TimeZoneInfo財產ServiceStack在JSON
- 18. TimeZoneInfo對象
- 19. TimeZoneInfo Id座標
- 20. TimeZoneInfo錯誤?
- 21. 客戶端TimeZoneInfo
- 22. TimeZoneInfo和IIS
- 23. 更短的名稱獲得訪問C中的類#
- 24. 有沒有什麼可以從短變量名獲得?
- 25. 如何縮短長名單的名稱
- 26. 從全名獲取簡短用戶名
- 27. TCL TK tablelist如何獲得列名
- 28. 如何從buildbot獲得修訂名稱
- 29. 如何獲得CoreLocation的地名
- 30. 如何獲得外鍵使用表名
應當指出的是,一個人不能僅僅確定日光或不只是一個時區信息。例如,根據建議查看註冊表,可以看到所有名稱只包含「標準」而不是「日光」。因此,在沒有涉及DateTime的情況下,您將無法獲得準確答案(即考慮Daylight)。 – user420667 2017-02-06 22:52:55