Windows事件日志的时间格式是什么?

时间:2010-06-19 13:31:10

标签: c# event-log

这种搅拌2010-06-19T06:28:01.077148400Z属于哪种格式?

它代表6/19/2010 11:58:01 AM。

我尝试将字符串解析为DateTime.Parse(),而DateTime对象表示上述时间。现在我想再次将该DateTime对象转换为该格式。我怎么能这样做?

4 个答案:

答案 0 :(得分:9)

根据您的用户信息,您看起来像是在印度时区 - New Delhi区域比UTC提前5小时30分钟。日期/时间字符串末尾的“Z”表示UTC,这是有道理的:6:28 UTC是您所在时区的11:58。

您可以使用本地DateTime并使用ToUniversalTime将其转换为UTC - 但如果您想获取当前时间,则可以使用DateTime.UtcNow开始。

在UTC中获得DateTime后,此格式字符串将以相同的方式对其进行格式化:

yyyy-MM-ddTHH:mm:ss.fffffff00K

这与往返格式非常相似,最后只有两个零。这些被硬编码为0,因为DateTime的精度不超过十分之一微秒,而你的样本字符串则低至一纳秒。

例如:

DateTime now = DateTime.UtcNow;
string s = now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff00K",
                        CultureInfo.InvariantCulture);

创建如下内容:

2010-06-19T13:57:15.885578200Z

答案 1 :(得分:1)

对我来说看起来像Universaltime

Grz,Kris。

答案 2 :(得分:0)

这看起来像使用Round-trip ("O", "o") Format Specifier

的DateTime表示
var s = "2010-06-19T06:28:01.077148400Z";

var dt = DateTime.Parse(s, null, DateTimeStyles.RoundtripKind);

Console.WriteLine(dt.ToString("o"));  //  prints "2010-06-19T06:28:01.0771484Z"

答案 3 :(得分:0)

看起来像UTC格式为round-trip format