我有一个在 Mono 2.10.9 下的 Linux 机器上运行的程序。它使用 log4net 登录到 Windows 7 机器上的程序。我的 Linux 系统时钟设置为本地时间,我的 Windows 机器也是如此。在每台机器上执行以下操作会产生略有不同的结果:
DateTime now = DateTime.Now;
Console.WriteLine(String.Format("{0} - Kind {1}", now, now.Kind));
在 Windows 上,我得到
2013 年 5 月 28 日晚上 8:39:09 - 当地人
在Linux上我得到
0/735016/0001 8:39:45 PM - 当地人
看来转换在 Mono 中已损坏,但这是另一天的另一个问题。
在LoggingEvent
我从 Linux 机器收到的对象中,该TimeStamp
字段实际上包含 UTC 时间,而不是本地时间。但是,TimeStamp.Kind
属性是Local
!
这给我带来了问题,因为源自 Windows 的日志事件确实是本地的,而来自 Mono 的日志事件是 UTC,我无法区分Kind
,而且创建时刻的日志消息看起来很有趣分开看起来他们相隔5个小时。
我能做些什么来解决这个问题?