Files
I150/srcs/RobotNet10/Shared/RobotNet.VDA5050/DateTimeConverter.cs
2026-07-03 16:37:12 +07:00

27 lines
948 B
C#

using System.Text.Json;
using System.Text.Json.Serialization;
namespace RobotNet.VDA5050;
public class DateTimeConverter : JsonConverter<DateTime>
{
private const string Format = "yyyy-MM-ddTHH:mm:ss.fffZ";
public override DateTime Read(ref Utf8JsonReader reader, System.Type typeToConvert, JsonSerializerOptions options)
{
var str = reader.GetString();
if (str != null && str.EndsWith('Z'))
{
str = str[..^1];
return DateTime.ParseExact(str, "yyyy-MM-ddTHH:mm:ss.fff", null, System.Globalization.DateTimeStyles.AssumeUniversal);
}
return DateTime.Parse(str!, null, System.Globalization.DateTimeStyles.AssumeUniversal);
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
var utc = value.ToUniversalTime();
writer.WriteStringValue(utc.ToString(Format));
}
}