我需要知道处理EST和EDT的TimeZoneinfo,即如果EST时间适用,那么它应该给我EST时间,当EDT适用时,我应该得到EDT时间。
可以在C#中使用以下方法吗?
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow,“东部标准时间”)
提前致谢。
答案 0 :(得分:1)
此Time Zone Overview可能会为您提供一些有用的背景信息。 ConvertTimeBySystemTimeZoneId的文档说
执行转换时, ConvertTimeBySystemTimeZoneId方法 适用任何有效的调整规则 在destinationTimeZoneId时间 区。
调整规则是定义日光时间的原因所以是的,使用“东部标准时间”作为ID将在适用时为您提供东部夏令时。
如果要进行多次转换,可以使用FindSystemTimeZoneById方法检索TimeZoneInfo对象。 FindSystemTimeZoneById的文档还说明了在注册表中可以找到这些ID的位置。
当然,ConvertTimeBySystemTimeZoneId和FindSystemTimeZoneById只有在时区id在注册表中时才能工作(但东部标准时间应该在那里!)。此外,当政府宣布时,调整规则可能会发生变化,因此适用的调整规则可能取决于您系统上时区的定义是如何更新的。