如何在 Dynamics CRM 中获取时区的夏令时开始和结束?
Posted
技术标签:
【中文标题】如何在 Dynamics CRM 中获取时区的夏令时开始和结束?【英文标题】:How to get daylight savings start and end for a time zone in Dynamics CRM? 【发布时间】:2015-05-03 08:11:05 【问题描述】:在 CRM Online 2013 中,我需要根据特定时区确定夏令时的开始日期和结束日期。除了当前用户设置中的时区之外,我的代码需要显示为不同时区转换的时间。例如,如果当前用户的时区设置为 EST - 东部标准时间,他们将看到本地时间的日期/时间值,但我需要在实体表单上显示 Web 资源,显示转换为其他时间的日期/时间区。我可以获得每个时区的标准偏移量,但找不到任何指示夏令时开始月份/日期的准确数据,因此我知道何时使用该偏移量。使用 OData 服务端点,我查看了 TimeZoneDefinition 和 TimeZoneRule 实体,以及 UserSettings 实体中用户的当前时区。我检查了这些实体的属性,但它们的夏令时月/日值不正确。例如,查看 EST 时区,我看到 3 月 2 日的 Daylight 月份和日期,但它应该是 3 月 8 日。
我已经验证 CRM 本身可以正常工作,在表单上设置日期/时间值会导致标准时间到 3/7 和夏令时开始 3/8 的正确 UTC 值,但我需要访问来自 javascript Web 资源中的相同信息。非常感谢任何帮助。
【问题讨论】:
【参考方案1】:我想我刚刚意识到问题所在。我期望这些值被定义为夏令时开始时的特定月份和日期(如月份中的某天)。我相信日值(DaylightDay 或 TimeZoneDaylightDay 取决于您正在查看的实体)是夏令时标准规则定义的一部分。天值 2 表示该天在该月中的第二次出现,需要与 DaylightDayOfWeek 值一起使用。例如,如果月份为 3,天为 2,星期为 0,则这将被读取为 March(3) 中的第二个 (2) Sunday(0)。现在我明白了,这是有道理的,这只是可用于计算任何给定年份 DST 实际开始的规则。
【讨论】:
以上是关于如何在 Dynamics CRM 中获取时区的夏令时开始和结束?的主要内容,如果未能解决你的问题,请参考以下文章