DateTime.ParseExact Метод, не распознающий «Z» как время UTC - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь прочитать файлы журнала, извлекая метки времени как объекты даты и времени. Некоторые из этих времен в формате 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 Ответ

2 голосов
/ 04 апреля 2019

Похоже, вам нужно будет использовать:

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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...