public void FailParseInvalidInputs(string input) { // action var tryParseResult = Rfc3339TimestampParser.TryParseTimestampFromString(input, out _); // assert Assert.False(tryParseResult); }
public void ParseValidInputs(string input, DateTimeOffset expectedOutput) { // action var tryParseResult = Rfc3339TimestampParser.TryParseTimestampFromString(input, out var actualOutput); // assert Assert.True(tryParseResult); Assert.Equal(expectedOutput, actualOutput); }
public static bool TryParseTimestampFromString(string timestampString, out DateTimeOffset parsedTimestamp) { parsedTimestamp = default; if (string.IsNullOrWhiteSpace(timestampString)) { return(false); } timestampString = timestampString.Trim(); if (Rfc3339TimestampParser.TryParseTimestampFromString(timestampString, out parsedTimestamp)) { return(true); } if (Rfc822TimestampParser.TryParseTimestampFromString(timestampString, out parsedTimestamp)) { return(true); } // try other formats timestampString = timestampString.ToUpperInvariant(); if (DateTimeOffset.TryParseExact(timestampString, OtherFormatsWithoutOffset, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out parsedTimestamp)) { return(true); } if (DateTimeOffset.TryParseExact(timestampString, OtherFormatsWithOffset, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedTimestamp)) { return(true); } // try default parsing if (DateTimeOffset.TryParse(timestampString, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out parsedTimestamp)) { return(true); } return(false); }