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

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

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

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

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