2
我有一个可跨多个时区工作的Dynamics CRM系统。用户在当地时区工作,我有一些服务与他们创建的实体进行交互。CRM EarlyBoundEntities日期时间
所有代码都是通过SDK生成的早期绑定实体类完成的。
例如:
- 用户通过UI = 2012年11月23日00:00:00 与GMT-4时区相关联的任务的开始和结束日期创建一个记录
- 开始日期在DB = 2012年11月24日20通过UI
- 在DB = 2012年11月22日开始日期20点00分00秒
- 结束日期= 2012年11月25日00:00:00
- 结束日期: 00:00
- 服务的过程,记录和创建任务有开始和结束日期 - 这一次的服务帐户是在GMT + 1(BST)
- 通过代码= 2012年11月22日20:00:00开始日期在DB通过UI
- 在DB = 2012年11月22日开始日期19点00分00秒
- 结束日期= 2012年11月24日20时○○分00秒
- 结束日期= 2012年11月24日19 :00:00
- 用户查看创建的记录并看到任务的开始和结束da tes早4小时 - 当用户界面渲染时显示为2012/11/22 23:00:00,用户期待2012/11/23 00:00:00。
我看到问题,当用户创建一个记录,由日期不匹配导致问题的服务使用。
所以我想我有一些问题:
- 是由SDK EarlyBoundEntities返回的日期时间本地或UTC(我怀疑UTC)?
- 如果它的UTC应该更新/创建记录,我的代码也会在设置它之前将其转换为UTC的日期时间(即在设置时,使用datetime.ToLocal()和ToUTC()时)?
- 我的服务器应该根据夏令时进行调整还是应该保持在设定的时间,即UTC?