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

时间:2013-02-19 06:26:09

标签: c# event-log


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

这是代码:

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);
        }
    }
}


提前谢谢。

1 个答案:

答案 0 :(得分:0)

在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