Files
zszq-trs/Framework/SharedWebApi/Converters/IsoDateTimeConverter.cs
T
2024-05-09 14:06:26 +08:00

40 lines
1.1 KiB
C#

using Newtonsoft.Json;
namespace YLErp.Converter2
{
public class IsoDateTimeConverter : JsonConverter<DateTime>
{
public IsoDateTimeConverter() { }
public IsoDateTimeConverter(string format)
{
DateTimeFormat = format;
}
public string DateTimeFormat { get; set; } = "yyyy/MM/dd";
public override DateTime ReadJson(JsonReader reader, Type objectType, DateTime existingValue, bool hasExistingValue, JsonSerializer serializer)
{
var value = reader.Value?.ToString();
if (string.IsNullOrEmpty(value))
{
return existingValue;
}
else
{
if (DateTime.TryParse(value, out var date))
{
return date;
}
else
{
return existingValue;
}
}
}
public override void WriteJson(JsonWriter writer, DateTime value, JsonSerializer serializer)
{
writer.WriteValueAsync(value.ToString(DateTimeFormat)).Wait();
}
}
}