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;