首页 > 解决方案 > 如何使用正确的时区 c# 反序列化 Datetime json

问题描述

我的应用程序使用 API,其中一个 API 以 unix 时间格式返回 Datetime 值

ex: user.DateOfBirth = "/Date(476197200000+1100)/" 

反序列化过程运行良好(deserialize<User>对象)但是当我向 GUI 显示日期时间时。

UI 将此日期显示为 2/Feb/1985 我的预期是:3/Feb/1985

我的本地环境正确显示,它是 3/Feb/1985,但在 UAT 环境中,它显示不到 1 天(2/Feb/1985)

我正在使用 Newtonsoft.Json v10.xx

标签: json.net

解决方案


不确定您是如何反序列化的,但您可能想研究如何使用特定时区进行解析。

你可以试试这个。

microsoftDateFormatSettings = 
new { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
      DateTimeZoneHandling = DateTimeZoneHandling.Local};

var items = JsonConvert.DeserializeObject<List<lstObject>>.
(jsonString, microsoftDateFormatSettings);

推荐阅读