C#british summer time(BST)timezone的缩写

Fla*_*ack 17 .net c# timezone

我需要显示一个带有当前时区缩写的标签.我的电脑的时区目前设定为"(GMT)格林威治标准时间:都柏林,爱丁堡,里斯本,伦敦".因此,我希望看到BST显示,因为LN目前正处于英国夏季.

看起来这个信息(时区缩写)不可用.看看GMT TimeZoneInfo,关于名字我只能看到

Id  "GMT Standard Time"
StandardName    "GMT Standard Time"
DaylightName    "GMT Daylight Time"
Run Code Online (Sandbox Code Playgroud)

有没有办法从"GMT日光时间"或任何其他可用的Windows时区信息到达BST?

Dav*_*haw 16

TimeZoneInfo班引荐"英国夏令时间"为"GMT夏令时",所以没有是不可能的.如果微软将它存储为"BST",它将存在于该DaylightName属性中.

虽然TimeZoneInfo多年前在BCL博客上发展了这个课程,但我没有看到他们如何选择价值观的背后的解释DaylightName.如果我猜测这将是因为这是一个"时区"而不是一个特定的城市.

看起来公共域tzdatabase被认为比Microsoft的时区数据库更完整,它确实显示了伦敦的BST().这是因为城市包含在此数据集中,而不仅仅是时区.有一个名为Noda Time的项目将tzdatabase带到现在可用的.Net.


Eri*_*ikE 6

您应该知道,所有标有“标准”的时区都会在夏季正确切换到夏令时。例如,TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")将是一个可以正确处理标准时间和日光时间的对象。比如说,也是如此"Pacific Standard Time"