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);
}
}
}
在此先感谢。
答
测试上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
我要问.... *为什么*是本地日期2056 ?是不太知名的UTC + 375k时区? – 2013-02-19 06:27:19
我们正在测试我们的应用程序以了解它如何工作,我想它被称为未来日期测试或类似的东西。那么,我可以用2056年不远的其他一年,但它仍然会给我同样的结果。 – cookieMonster 2013-02-19 06:32:36
此问题是否与特定日期范围有关?或者不管它总是发生? – bytefire 2013-02-19 06:35:01