【发布时间】:2018-06-26 21:54:40
【问题描述】:
有谁知道我在哪里可以找到关于 .NET DataContractJsonSerializer 类使用的 DateTime 格式的文档?我一直在寻找一段时间,但找不到它。首先,我知道您可以通过将设置传递给此类来提供自己的格式,但是,如果我使用默认格式,我希望能够记录下来。基本上,如果有人决定不使用 DataContractJsonSerializer 类来反序列化我的 json 字符串,他们就会知道如何将 DateTime 对象转换回其原生 DateTime 类型。还是 DataContractJsonSerializer 类独有的东西?
例如:
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(DateTime));
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString()); // "6/26/2018 5:37:31 PM"
ser.WriteObject(stream1, now);
ms.StartPosition = 0;
StreamReader sr = new StreamReader(stream1);
Console.WriteLine("JSON DateTime Format: ");
Console.WriteLine(sr.ReadToEnd()); // "\/Date(1530049051609-0400)\/"
那么“6/26/2018 5:37:31 PM”->“1530049051609-0400”->“6/26/2018 5:37:31 PM”的文档在哪里?或者有没有。
【问题讨论】:
-
ser.WriteObject(stream1, now.ToString()); -
@Hackerman 有点违背了目的,因为您将序列化
string而不是DateTime? -
您可以使用它,所以应该没问题...无论如何,首先我们需要了解 JSON 代表
JavaScript object notation...所以Date(1530049051609-0400)它是一个有效的 JavaScript 日期。事实上,如果你在浏览器控制台中粘贴Date(1530049051609-0400),你应该会看到类似于"Wed Jun 27 2018 13:27:32 GMT-0400 (hora estándar de Chile)" -
是的,我认为 JSON 可以被多种语言读取是显而易见的,但仍然缺少问题的重点,即要求提供有关 .net json 序列化程序格式转换方法的特定文档,而不是解决方法。
-
不,你不明白,至少我试过了……