DateTime.UtcNow和DateTime.Now返回错误的时间

问题描述 投票:0回答:2

我在c#中使用DateTime.UtcNowDateTime.Now,但他们都返回了错误的小时和分钟。

我正确的时间是23:04,它的回归是20:34或类似的东西

我把这段代码放在DateTime函数之前:

System.Globalization.CultureInfo.CurrentCulture.ClearCachedData();

但是一样......

我能做什么 ?

c# datetime utc
2个回答
0
投票

你的问题不是很清楚你的时区是什么?对于太平洋标准时区使用,您可以根据您的要求更改字符串名称,还可以重新检查系统时间。

TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow,
  TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));

0
投票

您需要检查计算机的时间和时区设置。您有以下两种选择之一:

1)代码:

Console.WriteLine(string.Concat("DateTime.Now: ", DateTime.Now.TimeOfDay));
Console.WriteLine(string.Concat("DateTime.UtcNow: ", DateTime.UtcNow.TimeOfDay));
Console.WriteLine(string.Empty);

string tziString = TimeZoneInfo.Local.Id;

Console.WriteLine(string.Concat(tziString, ": ", 
    TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById(tziString)).TimeOfDay));

Console.WriteLine(string.Concat("UTC Offset: ", TimeZoneInfo.Local.GetUtcOffset(DateTimeOffset.Now)));

结果:

Code Result

2)右键单击任务栏右侧的日期和时间,然后单击“调整日期/时间”:

Adjust Date Time

如果时区设置不正确,您必须通过选项2进行更改,这样才能成为我开始使用的选项。

© www.soinside.com 2019 - 2024. All rights reserved.