gpt4 book ai didi

c# - 使用 JSON.net 反序列化为对象时从时间戳中丢失毫秒数

转载 作者:行者123 更新时间:2023-11-30 19:37:28 25 4
gpt4 key购买 nike

如果我将 json 中包含的时间戳反序列化为一个对象,它就会失去毫秒精度。

var json = "{\"timestamp\":\"2016-06-16T16:27:36.808Z\"}";
var dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
Console.WriteLine(dict["timestamp"]);

输出:

16/06/2016 16:27:36

即使我将对象转换为日期时间也会发生这种情况。

var obj = dict["timestamp"];
var timestamp = DateTime.Parse(obj.ToString());
Console.WriteLine(timestamp.ToString("yyyy/MM/dd HH:mm:ss.ffff"));

输出:

2016/06/16 16:27:36.0000

最佳答案

问题仅仅是您在两种情况下都在 DateTime 上调用 ToString,并且默认字符串表示不包括毫秒,因此它们丢失了。

更改第一个片段的最后一行:

var json = "{\"timestamp\":\"2016-06-16T16:27:36.808Z\"}";
var dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
Console.WriteLine(((DateTime)dict["timestamp"]).ToString("O"));

给予

2016-06-16T16:27:36.8080000Z

“O”是包含全精度的往返格式。您可能希望使用不同的格式。

关于c# - 使用 JSON.net 反序列化为对象时从时间戳中丢失毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38033635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com