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,如果他們的用戶位于不同的時區(qū),您可能會無意中更改日期。
這是一個例子:https ://dotnetfiddle.net/OA06L9

TA貢獻1880條經驗 獲得超4個贊
如果您的用戶選擇了一個日期,您不應該發(fā)回日期和時間以及時區(qū)偏移量。只需發(fā)送日期:
{"EndDt":"2018-11-30"}
然后,您無需更改 Json 解析器中的任何默認日期設置。
請注意,如果您的前端正在使用,則該屬性已在屬性<input type="date">
中提供給您。您不應從該值創(chuàng)建 JavaScript 對象。value
Date
但是,如果您使用的其他日期選擇器控件只返回一個Date
對象,那么您需要從中提取本地年、月和日期來構造返回字符串。Moment.js 之類的庫可以提供幫助,一些日期選擇器可以原生使用 Moment。
如果您在這方面需要更具體的建議,請?zhí)峁┯嘘P您的日期選擇器的更多信息。
- 4 回答
- 0 關注
- 207 瀏覽
添加回答
舉報