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

Abd*_*med 2 c# event-log

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

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

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

Jon*_*eet 9

根据您的用户信息,您看起来像是在印度时区 - 新德里区比UTC早5小时30分钟.日期/时间字符串末尾的"Z"表示UTC,这是有道理的:6:28 UTC是您所在时区的11:58.

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

一旦你有一个DateTimeUTC,这个格式字符串将以相同的方式格式化它:

yyyy-MM-ddTHH:mm:ss.fffffff00K
Run Code Online (Sandbox Code Playgroud)

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

例如:

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

创建这样的东西:

2010-06-19T13:57:15.885578200Z
Run Code Online (Sandbox Code Playgroud)