在net core中webapi返回的時間格式問題

問題簡介: 返回DateTime,前端接收到的字符有時候為2018-01-01T12:01:01,有時候為2018-01-01T01:01:01.722+08:00,無法正常解析

原因:

WebApi的Json解析採用的是NewtonSoft的Json.net類庫,其格式化日期默認採用的是ISO-8601 格式,該標準規定,日期後面加具體時間必須帶上字符“T”,最後的+08:00代表東八區。因此, DateTime.Now會被格式化成成2018-01-01T01:01:01.722+08:00。

在net core中webapi返回的時間格式問題

我們用Reflector反編譯代碼,搜索類JsonSerializer看看,可以發現默認日期格式為"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"。

在net core中webapi返回的時間格式問題

解決方法:1、依舊返回默認格式,前端按此種格式解析日期2、如果應用程序不涉及到跨時區,後端可以全局修改日期的返回格式,比如可以修改為"2018-01-01 12:01:01".net core處理方法:

在net core中webapi返回的時間格式問題

.net framework(4.5.2為例)

在net core中webapi返回的時間格式問題

3、後端局部修改返回格式,可以用比較醜陋的方式,先格式化為字符串,再轉回到DateTime處理如: timeTest.Dt1 = DateTime.Parse(timeTest.Dt1.ToString("yyyy-MM-dd HH:mm:ss"));


分享到:


相關文章: