2


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


提前致谢。

4

1 回答 1

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

于 2013-02-19T07:38:26.667 回答