我正在尝试读取日志文件,将时间戳提取为datetime对象。其中一些时间采用UTC格式,后跟“ Z”。我已经在我们的格式中包括了“ K”,但是日期时间仍未被识别为UTC。 相反,它被视为未指定。
以下代码段:
string teststring = line.Substring(OffsetStart, format.Length);
DateTime datePlaceholder;
if (DateTime.TryParseExact(teststring, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out datePlaceholder))
{
Format = format;
OffsetEnd = OffsetStart + format.Length;
FormatLen = format.Length;
return datePlaceholder;
break;
}
我遍历一些不同的格式字符串,例如,这里是一个:
yyyy-MM-ddTHH:mm:ss.fffK
任何见识都受到赞赏!
答案 0 :(得分:2)
您似乎需要使用:
System.Globalization.DateTimeStyles.AdjustToUniversal
代替
System.Globalization.DateTimeStyles.None
因此整行将是:
if (DateTime.TryParseExact(teststring, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AdjustToUniversal, out datePlaceholder))
{do whatever}