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

本文关键字:错误 日期 TimeGenerated 返回 EventLogEntry | 更新日期: 2023-09-27 18:00:15


我一直在写一个c#应用程序,它可以将日志写入物理磁盘上的文件,但我注意到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);
        }
    }
}


提前谢谢。

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

在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