Utf8jsonreader Datetimeoffset Parsing Rfc 3339 [best] Info

| Example | Meaning | |----------------------------------|-----------------------| | 2023-10-05T14:30:00Z | UTC | | 2023-10-05T14:30:00+02:00 | UTC+2 | | 2023-10-05T14:30:00.123-05:00 | UTC-5 with fraction |

if (DateTimeOffset.TryParseExact(s, rfc3339Pattern, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out DateTimeOffset result))

If you need UTC normalization:

throw new JsonException("Invalid RFC 3339 DateTimeOffset string.");

throw new JsonException("Invalid RFC 3339 format"); utf8jsonreader datetimeoffset parsing rfc 3339

if (reader.TokenType == JsonTokenType.PropertyName && reader.GetString() == "created")

public class Event

// Fallback: manual strict parsing ReadOnlySpan<byte> span = reader.ValueSpan; Span<char> chars = stackalloc char[span.Length]; int len = Encoding.UTF8.GetChars(span, chars); if (DateTimeOffset.TryParseExact(chars.Slice(0, len), "yyyy-MM-dd'T'HH:mm:ss.FFFFFFFK", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out dto)) return dto;

×