DateTime.ParseExact方法无法将“ Z”识别为UTC时间

时间:2019-04-04 02:35:39

标签: c# datetime

我正在尝试读取日志文件,将时间戳提取为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

任何见识都受到赞赏!

1 个答案:

答案 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}