К этому вопросу, похоже, было несколько комментариев (включая мой собственный ошибочный вопрос об использовании AllowLeadingWhite
(я имел в виду AllowInnerWhite
).
Однако, просто используя AllowInnerWhite
с существующей строкой формата все ещевыдает ошибку:
Console.WriteLine(DateTimeOffset.ParseExact("Tue Dec 4 22:39:38 UTC 2018", "ddd MMM dd HH:mm:ss UTC yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite));
Производит:
FormatException: строка не была распознана как действительный DateTime.
Однако, глядя на это изпод другим углом, почему бы не изменить сам формат даты, чтобы разрешить однозначные даты. Используйте "ddd MMM d HH:mm:ss UTC yyyy"
(с одной буквой «d» для фактической даты вместо «dd»):
Console.WriteLine(DateTimeOffset.ParseExact("Tue Dec 4 22:39:38 UTC 2018", "ddd MMM d HH:mm:ss UTC yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite));
Console.WriteLine(DateTimeOffset.ParseExact("Tue Dec 11 22:39:38 UTC 2018", "ddd MMM d HH:mm:ss UTC yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite));
Console.WriteLine(DateTimeOffset.ParseExact("Fri Dec 14 22:39:38 UTC 2018", "ddd MMM d HH:mm:ss UTC yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite));
Примечаниечто ваши примерные данные 'Tue Dec 14 22:39:38 UTC 2018'
потерпят неудачу, потому что 14 декабря 2018 года - пятница, а не вторник.