EventLogEntry.TimeGenerated返回完全错误的日期

问题描述:


我一直在写日志写入物理磁盘上的文件,但我注意到TimeGenerated属性的奇怪行为 - 计算机上的本地日期是xx.xx.2056(不要问为什么),但财产的价值xx.xx.1920年和时间不匹配。

下面是代码:
EventLogEntry.TimeGenerated返回完全错误的日期

using (EventLog log = new EventLog("Application", ".")) 
{ 
    using (StreamWriter sw = new StreamWriter("events.log")) 
    { 
     foreach (EventLogEntry e in log.Entries) 
     { 
      sw.WriteLine("{0} : {1} : {2}", e.TimeGenerated, e.EntryType, e.Message); 
     } 
    } 
} 


在此先感谢。

+0

我要问.... *为什么*是本地日期2056 ?是不太知名的UTC + 375k时区? – 2013-02-19 06:27:19

+0

我们正在测试我们的应用程序以了解它如何工作,我想它被称为未来日期测试或类似的东西。那么,我可以用2056年不远的其他一年,但它仍然会给我同样的结果。 – cookieMonster 2013-02-19 06:32:36

+0

此问题是否与特定日期范围有关?或者不管它总是发生? – bytefire 2013-02-19 06:35:01

测试上WIN2003服务器SP2,本地日期2056(正确的日期在事件查看器):

  ManagementScope ms = new ManagementScope(); 
      ObjectQuery oQuery = new ObjectQuery("Select * from Win32_NTLogEvent where Logfile = 'Application' and type ='Error'"); 
      ManagementObjectSearcher oS = new ManagementObjectSearcher(ms, oQuery); 
      ManagementObjectCollection oCollection = oS.Get(); 
      var i2 = oCollection.Cast<ManagementObject>().First(); 
      DateTime timewritten = ManagementDateTimeConverter.ToDateTime(i2["TimeWritten"].ToString()); 

我得到1920

+0

这是如何回答这个问题的? – ryadavilli 2013-02-19 07:58:20