Javascript 为什么C#解析日期时间提前7小时?

Javascript 为什么C#解析日期时间提前7小时?,javascript,c#,datetime,iso,gmt,Javascript,C#,Datetime,Iso,Gmt,在尝试将我的本地时间从Javascript转换为C时,我在S/O中找到了一些示例。虽然我已经找到了一些不同的方法来解决这个问题,但所有这些方法都将最后一次呈现为比我早7个小时,我不理解这一点 e、 g: 而且,即使我只是尝试一下 var now = DateTime.Now; Console.WriteLine(now); 7/18/2016 9:39:55 PM//the output is 7 hours ahead. 有人能告诉我为什么会发生这种情况以及如何纠正它吗 您看到的是UTC值

在尝试将我的本地时间从Javascript转换为C时,我在S/O中找到了一些示例。虽然我已经找到了一些不同的方法来解决这个问题,但所有这些方法都将最后一次呈现为比我早7个小时,我不理解这一点

e、 g:

而且,即使我只是尝试一下

var now = DateTime.Now;
Console.WriteLine(now);
7/18/2016 9:39:55 PM//the output is 7 hours ahead. 

有人能告诉我为什么会发生这种情况以及如何纠正它吗

您看到的是UTC值的输出

改变

Console.WriteLine(t);


当然,这只会对第二种情况产生影响。您已经在第一个实例中调用了
ToLocalTime()

您看到的是UTC值的输出

改变

Console.WriteLine(t);


当然,这只会对第二种情况产生影响。您已经在第一个实例中调用了
ToLocalTime()

运行此操作的计算机的本地时钟设置为与UTC匹配


这在服务器和*nix工作站(包括OS X)上非常常见。

运行此功能的机器将其本地时钟设置为与UTC匹配


这在服务器和*nix工作站(包括OS X)上非常常见。

无论何时,只要您得到一个意外的日期/时间差,即确切的小时数,这几乎总是一个时区问题。毫无疑问,您的计算机的时区为UTC+7您将本地时间视为UTC时间。不要这样做(或者输入UTC时间,而不是本地时间)。这里的问题是DateTimeKind.UTC。在当地时间获取。@MarcB你知道我是否可以简单地更改设置来纠正问题吗?如果最后一个设置在7小时前关闭,你就会出错。检查您的时区和区域设置。如果这是在服务器上运行的,请检查。我只是在本地运行了相同的代码,并得到了正确的本地时间。每当你得到一个意外的日期/时间差,即确切的小时数,这几乎总是一个时区问题。毫无疑问,您的计算机的时区为UTC+7您将本地时间视为UTC时间。不要这样做(或者输入UTC时间,而不是本地时间)。这里的问题是DateTimeKind.UTC。在当地时间获取。@MarcB你知道我是否可以简单地更改设置来纠正问题吗?如果最后一个设置在7小时前关闭,你就会出错。检查您的时区和区域设置。如果这是在服务器上运行的,请检查。我刚刚在本地运行了相同的代码,并获得了正确的本地时间。@spb:那可能是因为代码上下文的当前时区是UTC请参见此处:@spb:那可能是因为代码上下文的当前时区是UTC请参见此处:
Console.WriteLine(t);
Console.WriteLine(t.ToLocalTime());