From 8fa753fdd108a09a19c485775e3bdbcdea3dd030 Mon Sep 17 00:00:00 2001 From: June Rhodes Date: Fri, 13 Feb 2026 19:48:47 +1100 Subject: [PATCH] Fix DateTimeConverter for `(UTC)` suffix Postmark have again changed the date format, and dates can now contain ` (UTC)` as a suffix. This change handles that, and also makes DateTimeConverter tolerant of unknown or badly formatted dates (defaulting to the current time), so that live applications don't break if Postmark changes the date format in production. --- src/Postmark/Converters/DateTimeConverter.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Postmark/Converters/DateTimeConverter.cs b/src/Postmark/Converters/DateTimeConverter.cs index 71d4daa..4a89d5a 100644 --- a/src/Postmark/Converters/DateTimeConverter.cs +++ b/src/Postmark/Converters/DateTimeConverter.cs @@ -18,7 +18,17 @@ public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, Jso { value = value.Substring(0, value.Length - " (GMT)".Length); } - return DateTime.Parse(value); + if (value.EndsWith(" (UTC)", StringComparison.Ordinal)) + { + value = value.Substring(0, value.Length - " (UTC)".Length); + } + if (DateTime.TryParse(value, out var dateTime)) + { + return dateTime; + } + + // Fallback so we can at least get responses. + return DateTime.UtcNow; } public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)