Utf8jsonreader Datetimeoffset Parsing Rfc 3339 -

If you need UTC normalization:

string dateString = reader.GetString();

public static DateTimeOffset ParseRfc3339Strict(ref Utf8JsonReader reader) utf8jsonreader datetimeoffset parsing rfc 3339

DateTimeOffset parsed = ParseDateTimeOffsetFromReader(ref reader); DateTimeOffset utc = parsed.ToUniversalTime(); | Error | Cause | |------------------------------------|-----------------------------------------------------------------------| | JsonException: Expected string | Token is not a string (maybe null or number). | | FormatException on TryParse | Missing T , wrong offset format ( +0530 instead of +05:30 ), wrong fractional seconds. | | Z not recognized | Some old parsers need ToUniversalTime() – not with DateTimeOffset . | If you need UTC normalization: string dateString = reader

// 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; span = reader.ValueSpan

⚠️ Stackalloc only safe for reasonably short strings (RFC 3339 ~30 chars). Perfectly safe here. RFC 3339 examples:

return result;

Please accept cookies to help us improve this website Is this OK? Yes No More on cookies »