timezone - 识别普通日期时间 (GMT/BST) 和 UTC 之间的相互转换
问题描述
我有一个遗留系统(SQL Server DB),它以纯日期时间格式保存日期。还有一个 MS Dynamics CRM 系统,用户可以交互并将数据插入 CRM DB。数据从遗留系统流向 CRM。
问题是 CRM 认为来自遗留系统的所有数据都是 UTC 格式的,实际上它是 GMT 和 BST 纯日期时间值的组合。这会导致一些事务超时一个小时。
我应该如何解决这个问题?
我能想到的一个解决方案是,确定日期是否在 BST 范围内,从中减去一小时并提供给 CRM。由于 BST = GMT + 1 hr 并且 GMT 和 UTC 可能相同,因此认为这可能会解决问题。
我不确定我是否已经排除了这个问题的所有可能问题。
有没有其他方法?
解决方案
操纵差异并将 UTC 时间戳发送到 CRM 工作正常。
或者,您可以在旧系统中合并一个新的 UTC 字段,该字段可用作偏移值,以便在两个系统之间同步。
推荐阅读
- ios - 如何在 Swift 中更改 UIScrollView 的背景颜色?
- javascript - 无法在渲染中调用的方法内设置状态
- deployment - Azure 应用服务部署无法获取资源类型“Microsoft.Web/Sites”的资源 ID
- java - Eclipse jUnit 单元测试结果未显示
- julia - 非标准字符串文字如何避免标准字符串文字产生的语法错误?
- javascript - 为什么我的父组件中的状态落后了一步?
- r - R. 四舍五入到特定位数。不考虑小数点
- python - 如何在 CentOS8 上安装 Ansible
- unit-testing - 如何测试运行命令的 Go 函数?
- scala - 如何使用 sbt 或 Metals 从 vscode 开发和运行 spark scala