sql-server - 从 SQL Server 数据库中颤动错误的 UTC 时间
问题描述
我在将我的时间识别DateTime
为 UTC 时间时遇到了问题。通过 http 请求,我将一些数据存储在包含 UTC 的 SQL Server 数据库中DateTime
。这是通过实体框架完成的。
var workingTime = new WorkingTime()
{
StartDateTime = dto.StartDateTime.ToUniversalTime(),
EndDateTime = dto.EndDateTime.ToUniversalTime(),
...
};
await _repository.AddAsync(workingTime);
这看起来很安静,请求是2020-06-13 01-59-41:690
在德国完成的,所以存储的数据是正确的 UTC 时间。
现在我在我的颤振应用程序中加载这些数据,如果我调试我的应用程序,加载的datetime
内容会说这不是 UTC 时间。
我不确定,如果我存储数据错误,或者我在颤振内部的解析是错误的,但我看不到我在这里做错了什么。
如果您需要代码或更多信息,请告诉我。
编辑
所以经过大量的测试,我发现了一些东西:
Debug.WriteLine(model.EndDateTime.Kind);
这将打印“未指定”。存储 DateTime 或从中读取似乎有问题。
解决方案
每次都明确说明 UTC。向编译器指示您想要 UTC 时间。要获取 UTC 时间中的毫秒SinceEpoch:
DateTime dateTime=DateTime.now().toUtc();
int epochTime = dateTime.toUtc().millisecondsSinceEpoch;
要获取 UTC 日期时间:
DateTime dt=DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch).toUtc();
推荐阅读
- javascript - 使用 React-quill 编辑器在 React Form 中 Onchange 函数不起作用
- javascript - 用 Java 脚本编写的固定括号插件
- android - 如何在android的TextView中使用特殊字符
- javascript - 突变观察者添加节点不可用即时(延迟)
- javascript - javascript中的2d平铺地图仅显示一部分
- javascript - 为什么我不能使用变量中的字符串加载模块?
- c++ - pybind11 & dlib:gcc 命令的 CMake 替代方案
- python - N1QL 超时设置 Couchbase Python SDK 3.0.x
- amazon-ec2 - 允许 SetInstanceProtection 的 Json 策略
- python - 如何运行基于命令行的应用程序并输入文本?