c# - DateTimeKind.Utc 与 DateTimeKind.Local
问题描述
这两个产生相同的结果,但我预计它们会关闭 6 小时。我不明白什么?
Console.WriteLine(new DateTime(1970, 1, 1, 12, 1, 0, DateTimeKind.Utc).ToString("R"));
\\ Thu, 01 Jan 1970 12:01:00 GMT
Console.WriteLine(new DateTime(1970, 1, 1, 12, 1, 0, DateTimeKind.Local).ToString("R"));
\\ Thu, 01 Jan 1970 12:01:00 GMT
解决方案
ToString
DateTime
按原样打印。您必须将它们都转换为相同的类型才能看到差异:添加.ToUniversalTime()
:
Console.WriteLine(new DateTime(1970, 1, 1, 12, 1, 0, DateTimeKind.Utc).ToUniversalTime().ToString("R"));
// Thu, 01 Jan 1970 12:01:00 GMT
Console.WriteLine(new DateTime(1970, 1, 1, 12, 1, 0, DateTimeKind.Local).ToUniversalTime().ToString("R"));
// Thu, 01 Jan 1970 11:01:00 GMT <-- I am at GMT+1
推荐阅读
- c# - Unity C# - Time.time & time.deltatime
- python - Keras RNN 未对所有训练数据进行训练
- javascript - 使用html表单提交未将对象添加到数组中
- r - 为什么 as_tibble(mtcars,rownames = NA) 不显示行名?文档说它应该
- laravel - 传递给 Tymon\JWTAuth\JWTGuard::login() 的参数 1 必须实现接口 Tymon\JWTAuth\Contracts\JWTSubject
- machine-learning - 如何使用神经网络对大量类进行分类?
- huawei-mobile-services - 如何强制设备用户使用与某些 HMS 服务内联的特定版本的 HMS 核心?
- javascript - discord 8ball 命令不选择随机答案集
- bash - curl + https://mail.google.com/mail/feed/atom = 401 未经授权
- terraform - Terraform - 展平嵌套地图