我需要以类似于这样的格式使用一些带有DateTime
数据的 JSON:
Tue Jun 11 00:00:00 +0100 2019
格林威治标准时间偏移量(+0100 是英国夏令时(。我正在使用 C# newtonsofts JsonConvert 反序列化它。例如
List<Staff_Extra> staff_Extras = JsonConvert.DeserializeObject<List<Staff_Extra>>(jStaffExtra.ToString(), new JsonSerializerSettings
{
DateFormatString = "ddd MMM dd hh:mm:ss yyyy"
});
由于偏移量,这将引发异常。DateFormatString
应该是什么样子来解释这种偏移量?
示例代码 https://www.newtonsoft.com/json/help/html/DeserializeDateFormatString.htm
时区令牌部分添加zzz
。其他令牌可以在这里找到。
-
如果要将该时间读为"转换为本地时间",请使用
DateTime.ParseExact(test, "ddd MMM dd hh:mm:ss zzz yyyy", null);
这将返回该时间
6/10/2019 5:00:00 PM
(我在 MDT,美国文化( -
如果要将该时间读取为本地时间并保留原始时区,请使用
DateTimeOffset.ParseExact(test, "ddd MMM dd hh:mm:ss zzz yyyy", null);
这会将该时间返回为
6/11/2019 12:00:00 AM +01:00
(保留时区偏移量( -
如果要将其读取为本地时间并忽略时区偏移量,请使用:
DateTimeOffset.ParseExact(test, "ddd MMM dd hh:mm:ss zzz yyyy", null).DateTime;
这将返回该时间作为
6/11/2019 12:00:00 AM