奇怪的DateTime.Now()行为



我有一个奇怪的问题,其中DateTime。现在,当我为了给日志文件加时间戳而调用它时,返回了不正确的时间。所讨论的代码如下:

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

其中'line'变量是传递给特定方法的字符串。日期没有问题,但是logTime变量中的时间比正常情况慢了20分钟。运行此应用程序的机器上的时钟是正确的,如果我删除了它正在写入的文本文件,一旦应用程序再次运行,它就会重新创建,并且文件本身的创建/修改戳是正确的。

既然文件系统正确地报告了文件上的时间,我就难倒了为什么要DateTime。现在慢了20分钟——我敢肯定这不是夏时制的问题,因为我们每次只移动1小时。

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

TIA

try change this:

string logTime = DateTime.Now.ToString("HH:MM:ss");

string logTime = DateTime.Now.ToString("hh:mm:ss");

MM =月而不是分钟

" MM "代表月份
'mm'表示分钟

你可以让你的代码更简单:
只写

string wLine = "[" + DateTime.Now.ToString("G") + "] " + line;

代替

string wLine = "[" + logDate + " " + logTime + "] " + line;

您可以在这里找到有关Standart String.Formats Of DateTime的更多信息

Console.WriteLine("[{0:G}] {1}", DateTime.Now, line);

最新更新