如何避免 JObject.Parse 解析 DateTime,而只获取原始字符串?

Pra*_*mar 0 c# datetime

我有如下所示的 JSON 数据,当我读取 DateTime 标记时,它会在内部转换为 {2/11/2022 6:56:17 AM}。我需要以字符串格式读取数据,与 JSON 中可用的数据相同

代码片段:

JObject jsonObject = JObject.Parse(jsonText);
var dateTime = jsonObject["LastModified"]["DateTime"]; // output = {2/11/2022 6:56:17 AM}, but i need "2022-02-11T06:56:17.143Z".
Run Code Online (Sandbox Code Playgroud)
{"LastModified": {
            "Username": "Philips Administrator",
            "DateTime": "2022-02-11T06:56:17.143Z"
        }
}
Run Code Online (Sandbox Code Playgroud)

Pal*_*Due 5

正如其他人指出的,日期时间没有格式。当您将其转换为字符串时,您可以根据需要设置其格式。如果你真的真的想把它当作一个字符串,你可以按照 Jon Skeet 的建议去做:

var jsonText = @"{""LastModified"": {
            ""Username"": ""Philips Administrator"",
            ""DateTime"": ""2022-02-11T06:56:17.143Z""
        }
}";
var settings = new JsonSerializerSettings
{
    DateParseHandling = DateParseHandling.None
};
JObject jsonObject = (JObject)JsonConvert.DeserializeObject(jsonText, settings);
var dateTime = jsonObject["LastModified"]["DateTime"]; 
Run Code Online (Sandbox Code Playgroud)

它还适用于“公元 932 年,午餐时间前一点”之类的日期。