using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json.Linq;
public static void Main()
var serialized = JsonConvert.SerializeObject(new MyClass{dt = new TimeOnly(11, 1, 1)});
Console.WriteLine(serialized);
var de = JsonConvert.DeserializeObject<MyClass>(serialized);
Console.WriteLine(de.dt);
public class TimeOnlyJsonConverter : JsonConverter<TimeOnly>
private const string Format = "HH:mm:ss.FFFFFFF";
public override TimeOnly ReadJson(JsonReader reader, Type objectType, TimeOnly existingValue, bool hasExistingValue, JsonSerializer serializer) => TimeOnly.ParseExact((string)reader.Value, Format, CultureInfo.InvariantCulture);
public override void WriteJson(JsonWriter writer, TimeOnly value, JsonSerializer serializer) => writer.WriteValue(value.ToString(Format, CultureInfo.InvariantCulture));
[Newtonsoft.Json.JsonConverter(typeof(TimeOnlyJsonConverter))]
public TimeOnly dt { get; set; }