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

时间:2017-12-20 21:07:13

标签: c# datetime utc

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

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

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

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

但同样......

我能做什么?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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进行更改,这样才能成为我开始使用的选项。