我需要显示带有当前时区缩写的标签。我电脑的时区当前设置为“(GMT) 格林威治标准时间:都柏林、爱丁堡、里斯本、伦敦”。因此,我希望看到显示 BST,因为 LN 当前处于英国夏令时。
看起来该信息(时区缩写)不可用。查看 GMT TimeZoneInfo,关于名称我只能看到
Id "GMT Standard Time"
StandardName "GMT Standard Time"
DaylightName "GMT Daylight Time"
有什么方法可以从“GMT 夏令时”或任何其他可用的 Windows 时区信息获取 BST?
最佳答案
TimeZoneInfo
类将“英国夏令时”称为“GMT 夏令时”,所以不,这是不可能的。如果 Microsoft 将其存储为“BST”,它将位于 DaylightName
属性中。
虽然多年前在 BCL 博客上关注 TimeZoneInfo
类的开发,但我没有看到他们如何选择 DaylightName
值的背后的任何解释。如果我猜的话,那是因为这是针对“时区”而不是特定城市。
看来公共(public)领域 tzdatabase被认为比 Microsoft 的时区数据库更完整,确实显示伦敦的 BST ( source )。这是因为此数据集中包含城市,而不仅仅是时区。 有一个名为 Noda Time 的项目将 tz 数据库带到现在可用的 .Net。
关于C#英国夏令时(BST)时区缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10126252/