c# – 如何将以毫秒为单位的时间转换为DateTime?

关于这个主题有很多想法,但这个是关于Win32 / WinEventProc的dwmsEventTime.

MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/dd373885(v=vs.85).aspx声明它是以毫秒为单位的事件时间,但没有提供进一步的解释.毫秒从哪里来?

以下是该事件返回的示例值:

dwmsEventTime: 1209382650 
DateTime.Now:  05/21/2014 16:49:37  (this should be very close to dwmsEventTime)

有谁知道如何将此参数转换为.NET DateTime()?

最佳答案 您可以尝试以下方法:

static DateTime GetDateTimeFromMillisecondNumber(int millisecCount)
{
  return DateTime.Now.AddMilliseconds(millisecCount - Environment.TickCount);
}

但请注意,如果系统是从重新启动计算机,因为获得了millisecCount,这将返回垃圾.如果它在与您获得计数的计算机不同的计算机上运行,​​则相同.

此外,这只是正确的“模49.7天”,即正确的日期和时间可能是49.7天的整数倍,大于或小于我的方法返回的值.

点赞