首页 > 解决方案 > 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

标签: c#

解决方案


ToStringDateTime按原样打印。您必须将它们都转换为相同的类型才能看到差异:添加.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

推荐阅读