java zoneinfo中的时区信息_奥尔森时区的.NET TimeZoneInfo

小编典典

此Unicode.org页面具有“

Olson时区到Win32时区”表。从那里,我创建了一个不错的C#帮助函数,以将Olson时区字符串映射到.NET TimeZoneInfo:

///

/// Converts an Olson time zone ID to a Windows time zone ID.

///

/// An Olson time zone ID. See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html.

///

/// The TimeZoneInfo corresponding to the Olson time zone ID,

/// or null if you passed in an invalid Olson time zone ID.

///

///

/// See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html

///

public static TimeZoneInfo OlsonTimeZoneToTimeZoneInfo(string olsonTimeZoneId)

{

var olsonWindowsTimes = new Dictionary()

{

{ "Africa/Bangui", "W. Central Africa Standard Time" },

{ "Africa/Cairo", "Egypt Standard Time" },

{ "Africa/Casablanca", "Morocco Standard Time" },

{ "Africa/Harare", "South Africa Standard Time" },

{ "Africa/Johannesburg", "South Africa Standard Time" },

{ "Africa/Lagos", "W. Central Africa Standard Time" },

{ "Africa/Monrovia", "Greenwich Standard Time" },

{ "Africa/Nairobi", "E. Africa Standard Time" },

{ "Africa/Windhoek", "Namibia Standard Time" },

{ "America/Anchorage", "Alaskan Standard Time" },

{ "America/Argentina/San_Juan", "Argentina Standard Time" },

{ "America/Asuncion", "Paraguay Standard Time" },

{ "America/Bahia", "Bahia Standard Time" },

{ "America/Bogota", "SA Pacific Standard Time" },

{ "America/Buenos_Aires", "Argentina Standard Time" },

{ "America/Caracas", "Venezuela Standard Time" },

{ "America/Cayenne", "SA Eastern Standard Time" },

{ "America/Chicago", "Central Standard Time" },

{ "America/Chihuahua", "Mountain Standard Time (Mexico)" },

{ "America/Cuiaba", "Central Brazilian Standard Time" },

{ "America/Denver", "Mountain Standard Time" },

{ "America/Fortaleza", "SA Eastern Standard Time" },

{ "America/Godthab", "Greenland Standard Time" },

{ "America/Guatemala", "Central America Standard Time" },

{ "America/Halifax", "Atlantic Standard Time" },

{ "America/Indianapolis", "US Eastern Standard Time" },

{ "America/Indiana/Indianapolis", "US Eastern Standard Time" },

{ "America/La_Paz", "SA Western Standard Time" },

{ "America/Los_Angeles", "Pacific Standard Time" },

{ "America/Mexico_City", "Mexico Standard Time" },

{ "America/Montevideo", "Montevideo Standard Time" },

{ "America/New_York", "Eastern Standard Time" },

{ "America/Noronha", "UTC-02" },

{ "America/Phoenix", "US Mountain Standard Time" },

{ "America/Regina", "Canada Central Standard Time" },

{ "America/Santa_Isabel", "Pacific Standard Time (Mexico)" },

{ "America/Santiago", "Pacific SA Standard Time" },

{ "America/Sao_Paulo", "E. South America Standard Time" },

{ "America/St_Johns", "Newfoundland Standard Time" },

{ "America/Tijuana", "Pacific Standard Time" },

{ "Antarctica/McMurdo", "New Zealand Standard Time" },

{ "Atlantic/South_Georgia", "UTC-02" },

{ "Asia/Almaty", "Central Asia Standard Time" },

{ "Asia/Amman", "Jordan Standard Time" },

{ "Asia/Baghdad", "Arabic Standard Time" },

{ "Asia/Baku", "Azerbaijan Standard Time" },

{ "Asia/Bangkok", "SE Asia Standard Time" },

{ "Asia/Beirut", "Middle East Standard Time" },

{ "Asia/Calcutta", "India Standard Time" },

{ "Asia/Colombo", "Sri Lanka Standard Time" },

{ "Asia/Damascus", "Syria Standard Time" },

{ "Asia/Dhaka", "Bangladesh Standard Time" },

{ "Asia/Dubai", "Arabian Standard Time" },

{ "Asia/Irkutsk", "North Asia East Standard Time" },

{ "Asia/Jerusalem", "Israel Standard Time" },

{ "Asia/Kabul", "Afghanistan Standard Time" },

{ "Asia/Kamchatka", "Kamchatka Standard Time" },

{ "Asia/Karachi", "Pakistan Standard Time" },

{ "Asia/Katmandu", "Nepal Standard Time" },

{ "Asia/Kolkata", "India Standard Time" },

{ "Asia/Krasnoyarsk", "North Asia Standard Time" },

{ "Asia/Kuala_Lumpur", "Singapore Standard Time" },

{ "Asia/Kuwait", "Arab Standard Time" },

{ "Asia/Magadan", "Magadan Standard Time" },

{ "Asia/Muscat", "Arabian Standard Time" },

{ "Asia/Novosibirsk", "N. Central Asia Standard Time" },

{ "Asia/Oral", "West Asia Standard Time" },

{ "Asia/Rangoon", "Myanmar Standard Time" },

{ "Asia/Riyadh", "Arab Standard Time" },

{ "Asia/Seoul", "Korea Standard Time" },

{ "Asia/Shanghai", "China Standard Time" },

{ "Asia/Singapore", "Singapore Standard Time" },

{ "Asia/Taipei", "Taipei Standard Time" },

{ "Asia/Tashkent", "West Asia Standard Time" },

{ "Asia/Tbilisi", "Georgian Standard Time" },

{ "Asia/Tehran", "Iran Standard Time" },

{ "Asia/Tokyo", "Tokyo Standard Time" },

{ "Asia/Ulaanbaatar", "Ulaanbaatar Standard Time" },

{ "Asia/Vladivostok", "Vladivostok Standard Time" },

{ "Asia/Yakutsk", "Yakutsk Standard Time" },

{ "Asia/Yekaterinburg", "Ekaterinburg Standard Time" },

{ "Asia/Yerevan", "Armenian Standard Time" },

{ "Atlantic/Azores", "Azores Standard Time" },

{ "Atlantic/Cape_Verde", "Cape Verde Standard Time" },

{ "Atlantic/Reykjavik", "Greenwich Standard Time" },

{ "Australia/Adelaide", "Cen. Australia Standard Time" },

{ "Australia/Brisbane", "E. Australia Standard Time" },

{ "Australia/Darwin", "AUS Central Standard Time" },

{ "Australia/Hobart", "Tasmania Standard Time" },

{ "Australia/Perth", "W. Australia Standard Time" },

{ "Australia/Sydney", "AUS Eastern Standard Time" },

{ "Etc/GMT", "UTC" },

{ "Etc/GMT+11", "UTC-11" },

{ "Etc/GMT+12", "Dateline Standard Time" },

{ "Etc/GMT+2", "UTC-02" },

{ "Etc/GMT-12", "UTC+12" },

{ "Europe/Amsterdam", "W. Europe Standard Time" },

{ "Europe/Athens", "GTB Standard Time" },

{ "Europe/Belgrade", "Central Europe Standard Time" },

{ "Europe/Berlin", "W. Europe Standard Time" },

{ "Europe/Brussels", "Romance Standard Time" },

{ "Europe/Budapest", "Central Europe Standard Time" },

{ "Europe/Dublin", "GMT Standard Time" },

{ "Europe/Helsinki", "FLE Standard Time" },

{ "Europe/Istanbul", "GTB Standard Time" },

{ "Europe/Kiev", "FLE Standard Time" },

{ "Europe/London", "GMT Standard Time" },

{ "Europe/Minsk", "E. Europe Standard Time" },

{ "Europe/Moscow", "Russian Standard Time" },

{ "Europe/Paris", "Romance Standard Time" },

{ "Europe/Sarajevo", "Central European Standard Time" },

{ "Europe/Warsaw", "Central European Standard Time" },

{ "Indian/Mauritius", "Mauritius Standard Time" },

{ "Pacific/Apia", "Samoa Standard Time" },

{ "Pacific/Auckland", "New Zealand Standard Time" },

{ "Pacific/Fiji", "Fiji Standard Time" },

{ "Pacific/Guadalcanal", "Central Pacific Standard Time" },

{ "Pacific/Guam", "West Pacific Standard Time" },

{ "Pacific/Honolulu", "Hawaiian Standard Time" },

{ "Pacific/Pago_Pago", "UTC-11" },

{ "Pacific/Port_Moresby", "West Pacific Standard Time" },

{ "Pacific/Tongatapu", "Tonga Standard Time" }

};

var windowsTimeZoneId = default(string);

var windowsTimeZone = default(TimeZoneInfo);

if (olsonWindowsTimes.TryGetValue(olsonTimeZoneId, out windowsTimeZoneId))

{

try { windowsTimeZone = TimeZoneInfo.FindSystemTimeZoneById(windowsTimeZoneId); }

catch (TimeZoneNotFoundException) { }

catch (InvalidTimeZoneException) { }

}

return windowsTimeZone;

}

2020-05-19

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值