К сожалению, я не знаю простого встроенного способа сделать это. Тем не менее, вы можете собрать что-нибудь сами. Вот пример:
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]. Если вы сможете найти в Интернете подходящую базу данных, содержащую те же идентификаторы и сокращения, можно быстро извлечь и импортировать пары (например, с помощью регулярных выражений) и поместить их в словарь карты.