4 回答
TA贡献1805条经验 获得超9个赞
实际上,请仔细检查您的 json 代码中的日期。我觉得它们可能已经在 javascript 中进行了转换。
还将 jsonsettings 更改为
public static JsonSerializerSettings GetJsonSettings()
{
var settings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Local,
DateParseHandling = DateParseHandling.DateTime
};
return settings;
}
TA贡献1808条经验 获得超4个赞
你可能会取得一些成功IsoDatetimeConverter
。我会尝试这样的事情:
var isoDateConverter = new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" }; var objMyModel = JsonConvert.DeserializeObject<List<MyModel>>(strChangedData, isoDateConverter);
TA贡献1884条经验 获得超4个赞
如果当前使用的是 DateTime,您可能想要MyModel
使用 DateTimeOffset。您可以使用 获取日期.ToShortDateString()
,但如果您不使用 DateTimeOffset,如果他们的用户位于不同的时区,您可能会无意中更改日期。
这是一个例子:https ://dotnetfiddle.net/OA06L9
TA贡献1880条经验 获得超4个赞
如果您的用户选择了一个日期,您不应该发回日期和时间以及时区偏移量。只需发送日期:
{"EndDt":"2018-11-30"}
然后,您无需更改 Json 解析器中的任何默认日期设置。
请注意,如果您的前端正在使用,则该属性已在属性<input type="date">
中提供给您。您不应从该值创建 JavaScript 对象。value
Date
但是,如果您使用的其他日期选择器控件只返回一个Date
对象,那么您需要从中提取本地年、月和日期来构造返回字符串。Moment.js 之类的库可以提供帮助,一些日期选择器可以原生使用 Moment。
如果您在这方面需要更具体的建议,请提供有关您的日期选择器的更多信息。
- 4 回答
- 0 关注
- 99 浏览
添加回答
举报