我正在使用方法从TimeZoneId获取时区
var timezoneObject= TimeZoneInfo.FindSystemTimeZoneById("UTC");
我期待的是
timezoneObject.Id : UTC
timezoneObject.DisplayName :(UTC) Coordinated Universal Time
timezoneObject.StandardName: Coordinated Universal Time
timezoneObject.DaylightName: Coordinated Universal Time
但是我得到了结果
timezoneObject.Id : UTC
timezoneObject.DisplayName :UTC
timezoneObject.StandardName: UTC
timezoneObject.DaylightName: UTC
但是在
的情况下var timezoneObject= TimeZoneInfo.FindSystemTimeZoneById("Dateline Standard Time");
它给出了所需的输出。
答案 0 :(得分:2)
使用此方法可以获得所需的结果:
var timezoneObject = TimeZoneInfo.GetSystemTimeZones().FirstOrDefault(x=> x.Id == "UTC");
输出继电器:
timezoneObject.Id : UTC
timezoneObject.DisplayName :(UTC) Coordinated Universal Time
timezoneObject.StandardName: Coordinated Universal Time
timezoneObject.DaylightName: Coordinated Universal Time
来自文档:
id参数必须与时区的注册表完全对应 密钥的长度,但不是以防万一,以便成功匹配;那 是,id与时区标识符的比较是 不区分大小写。如果要根据时间检索时区对象 部分匹配,您可以编写与之配合使用的自定义过程 由...返回的TimeZoneInfo对象的只读集合 GetSystemTimeZones方法。