我正在尝试为给定城市使用单个时区,例如伦敦,因此无论夏令时如何,我都可以始终在给定的伦敦时间运行任务。
所以,简而言之
任务可以在冬季和夏季的伦敦时间下午4点运行。
我使用“中部标准时间”为纽约设置任务,但是自从一周后的“纽约夏令时”开始以来,我可以看到我的任务运行了一个小时。
有人知道.Net是否存在代表城市本地时间的单个时区吗?
我不想使用BST和GMT,因为我需要对其进行两次配置。
希望我的问题有道理。
答案 0 :(得分:1)
伦敦的Windows时区ID为"GMT Standard Time"
。是的,这个名称令人困惑,但是它确实正确地代表了英国使用的GMT和BST以及它们之间的过渡。
但是,如果在非Windows操作系统上运行.NET Core,则将需要使用"Europe/London"
的IANA时区ID。
这两种方法均在各自的操作系统上使用TimeZoneInfo.FindSystemTimeZoneById
方法。
最后,如果您将代码设计为跨平台的,则不妨使用我的TimeZoneConverter库,该库将允许您在任何平台上使用两种形式的标识符。