如何在Dynamics CRM中获取时区的夏令时开始和结束时间

How to get daylight savings start and end for a time zone in Dynamics CRM?

本文关键字:夏令时 开始 时间 结束 时区 获取 Dynamics CRM      更新时间:2023-09-26

在CRM Online 2013中,我需要根据特定时区确定夏令时的开始和结束日期。我有代码需要显示为不同时区转换的时间,除了当前用户设置中的时区。例如,如果当前用户的时区设置为EST-东部标准时间,他们将在本地时间中看到日期/时间值,但我需要在实体窗体上显示一个web资源,将该日期/时间转换为其他时区。我可以获得每个时区的标准偏移量,但找不到任何准确的数据来指示夏令时的开始月份/日期,所以我知道何时使用该偏移量。使用OData服务端点,我查看了TimeZoneDefinition和TimeZoneRule实体,以及UserSettings实体中用户的当前时区。我检查了这些实体的属性,但它们的夏令时月/日值不正确。例如,在美国东部时间,我看到了3月2日的夏令时,但应该是3月8日。

我已经验证了CRM本身工作正常,在表单上设置日期/时间值会导致标准时间到3/7和夏令时从3/8开始的正确UTC值,但我需要从javascript web资源中访问相同的信息。非常感谢您的帮助。

我想我刚刚意识到问题是什么。我希望这些值被定义为夏令时开始的特定月份和日期(如一个月中的某一天)。我相信day值(DaylightDay或TimeZoneDaylightDay,取决于您所查看的实体)是夏令时标准规则定义的一部分。日期值为2实际上意味着该日期在一个月中的第二次出现,并且需要与DaylightDayOfWeek值一起使用。例如,如果月份为3,日期为2,星期几为0,则这将被读取为三月(3)的第二(2)个星期日(0)。现在我明白了,这是有道理的,这只是可以用来计算任何一年夏令时实际开始时间的规则。