Odd DateTime.Now()行为

Dav*_*ley 1 c# timezone datetime

我有一个奇怪的问题,其中DateTime.Now返回错误的时间,当我为了加时间戳日志文件而调用它时.有问题的代码如下:

string logDate = DateTime.Now.ToShortDateString();
string logTime = DateTime.Now.ToString("HH:MM:ss");
string wLine = "[" + logDate + " " + logTime + "] " + line;
Console.WriteLine(wLine);
Run Code Online (Sandbox Code Playgroud)

'line'变量是传递给该特定方法的字符串.日期很好,logTime变量内的时间比它应该慢20分钟.运行此应用程序的计算机上的时钟是正确的,如果我删除它正在写入的文本文件,它会在应用程序再次运行时重新创建,并且文件本身上创建/修改的标记是正确的.

鉴于文件系统正确报告文件上的时间,我很难理解为什么DateTime.Now慢了20分钟 - 我确信这不是DST问题,因为我们一次只能移动1小时.

有没有其他人看过这个问题,或者至少能指出我正确的方向?

TIA

小智 8

尝试改变这个:

string logTime = DateTime.Now.ToString("HH:MM:ss");
Run Code Online (Sandbox Code Playgroud)

string logTime = DateTime.Now.ToString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

MM =月份而不是分钟