diff --git a/src/Serenity.Net.Services/Entity/FieldTypes/StringField.cs b/src/Serenity.Net.Services/Entity/FieldTypes/StringField.cs index 55646466f9..da441598b8 100644 --- a/src/Serenity.Net.Services/Entity/FieldTypes/StringField.cs +++ b/src/Serenity.Net.Services/Entity/FieldTypes/StringField.cs @@ -119,6 +119,19 @@ public override void ValueFromJson(Newtonsoft.Json.JsonReader reader, IRow row, case Newtonsoft.Json.JsonToken.Boolean: _setValue(row, Convert.ToString(reader.Value, CultureInfo.InvariantCulture)); break; + case Newtonsoft.Json.JsonToken.Date: + var val = reader.Value is DateTimeOffset dto ? dto.DateTime : (DateTime)reader.Value!; + + var style = serializer.DateFormatString ?? "o"; + + if (val.TimeOfDay == TimeSpan.Zero) + style = style.Contains('T') ? style.Split('T')[0] : "yyyy-MM-dd"; + + if (style.Contains('\'')) + style = style.Replace("'", ""); + + _setValue(row, val.ToString(style, CultureInfo.InvariantCulture)); + default: throw JsonUnexpectedToken(reader); }