Skip to content

Instantly share code, notes, and snippets.

@marcominerva
Last active October 20, 2022 20:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcominerva/33d405825e06566870f86f00dbc1d9fc to your computer and use it in GitHub Desktop.
Save marcominerva/33d405825e06566870f86f00dbc1d9fc to your computer and use it in GitHub Desktop.
TimeOnlyConverter for System.Text.Json in .NET 6.0
public class TimeOnlyConverter : JsonConverter<TimeOnly>
{
private readonly string serializationFormat;
public TimeOnlyConverter() : this(null)
{
}
public TimeOnlyConverter(string? serializationFormat)
{
this.serializationFormat = serializationFormat ?? "HH:mm:ss.fff";
}
public override TimeOnly Read(ref Utf8JsonReader reader,
Type typeToConvert, JsonSerializerOptions options)
{
var value = reader.GetString();
return TimeOnly.Parse(value!);
}
public override void Write(Utf8JsonWriter writer, TimeOnly value,
JsonSerializerOptions options)
=> writer.WriteStringValue(value.ToString(serializationFormat));
}
@dgundersen
Copy link

Thank you for this! This and DateOnlyConverter worked perfectly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment