TryParseExact of DateTimeOffset.MinValue fails #60064
-
Why this code fails for both the last parts of the "test"? https://dotnetfiddle.net/QM5fBn The code is quite simple using System;
using System.Globalization;
public class Program
{
private static readonly string[] _acceptableFormats = new[]{"yyyy-MM-dd'T'HH:mm:ss.FFFFFFFK", "yyyy-MM-dd' 'HH:mm:ss.FFFFFFFK", "yyyy-MM-dd'T'HH:mm:ssK", "yyyy-MM-dd' 'HH:mm:ssK", "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd' 'HH:mm:ss", "yyyy-MM-dd'T'HH:mm", "yyyy-MM-dd' 'HH:mm", "yyyy-MM-dd'T'HH", "yyyy-MM-dd' 'HH", "yyyy-MM-dd", "yyyy-MM-dd", "yyyyMMdd", "yyyy-MM", "yyyy"};
public static void Main()
{
Console.WriteLine("Hello World");
var canParseValue = DateTimeOffset.TryParseExact("0001-01-01T00:00:00", _acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTimeOffset dateTimeResult);
Console.WriteLine(canParseValue);
var canParseValue2 = DateTimeOffset.TryParseExact("0001-01-01T01:00:00", _acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTimeOffset dateTimeResult2);
Console.WriteLine(canParseValue2);
var canParseValue3 = DateTimeOffset.TryParseExact(DateTimeOffset.MinValue.ToString(), _acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTimeOffset dateTimeResult3);
Console.WriteLine(canParseValue3);
var canParseValue4 = DateTimeOffset.TryParseExact(DateTime.MinValue.ToString(), _acceptableFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTimeOffset dateTimeResult4);
Console.WriteLine(canParseValue4);
}
} |
Beta Was this translation helpful? Give feedback.
Answered by
Clockwork-Muse
Oct 6, 2021
Replies: 1 comment 2 replies
-
// Outputs 01/01/0001 00:00:00 +00:00
Console.WriteLine(DateTimeOffset.MinValue.ToString()); The string you're working with isn't on the list of acceptable formats. You either need to add the invariant culture formats to the list of acceptable formats, or explicitly format the source string to one you expect. (separately, I'm annoyed the |
Beta Was this translation helpful? Give feedback.
2 replies
Answer selected by
alexdrl
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The string you're working with isn't on the list of acceptable formats. You either need to add the invariant culture formats to the list of acceptable formats, or explicitly format the source string to one you expect.
(separately, I'm annoyed the
InvariantCulture
doesn't use an ISO format, but that would be a massive breaking change....)