我想将 JSON 响应转换为等效的 XML 文档,但在这样做的同时,我还想保留当前日期和时间格式以及偏移量,例如 JSON 中的 DateTime 为“2019-10-25T07:00:00-05: 00" 并且在转换后我希望它保持不变。但是转换成 XML 后,DateTime 值变成了“2019-10-25T08:00:00-04:00”
我试图在 Microsoft 文档中搜索它,但我没有找到以下问题的答案:
- 如何确定给定日期时间字符串的时区(例如,“2019-10-25T07:00:00-05:00”)?
- 如何将日期时间字符串(例如,“2019-10-25T08:00:00-04:00”)转换为所需时区的日期时间(例如,转换为“2019-10- 25T07:00:00-05:00")
// C# Code Snippet
// Step 1: Reading JsonResponse from a file
string jsonString = System.IO.File.ReadAllText(@"C:\TestDateTimeConvertJSONResponse.txt");
// Step 2: Converting jsonString to XMLDoc
System.Xml.XmlDocument xmlDoc = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(jsonString);
Console.WriteLine();
Console.WriteLine("EQUIVALENT XML RESPONSE");
Console.WriteLine(xmlDoc.InnerXml);
输入 JSON 字符串:
{
"Flight": {
"FlightNumber": "747",
"Source": "JFK",
"Destination": "LAS",
"Status": "ON TIME",
"DepDateTime": "2019-10-25T07:00:00-05:00",
"Terminal": "2"
}
}
预期的:
<Flight>
<FlightNumber>747</FlightNumber>
<Source>JFK</Source>
<Destination>LAS</Destination>
<Status>ON TIME</Status>
<DepDateTime>2019-10-25T07:00:00-05:00</DepDateTime>
<Terminal>2</Terminal>
</Flight>
实际的:
<Flight>
<FlightNumber>747</FlightNumber>
<Source>JFK</Source>
<Destination>LAS</Destination>
<Status>ON TIME</Status>
<DepDateTime>2019-10-25T08:00:00-04:00</DepDateTime>
<Terminal>2</Terminal>
</Flight>