Имею JSON:
{
"date": "2020-11-26T20:57:55Z"
}
Хочу записать эту дату в таком же формате в другой JSON.
JObject json = JObject.Parse(File.ReadAllText("h:\\date.json"));
string dateString = json.Value<string>("date");
Console.WriteLine(dateString);
DateTime dateTime = DateTime.ParseExact(dateString, "MM/dd/yyyy HH:mm:ss",
null, System.Globalization.DateTimeStyles.None);
JObject j = new JObject();
j["newDate"] = dateTime;
Console.WriteLine($"JSON: {j}");
Console.ReadLine();
В результате получается:
11/26/2020 20:57:55
JSON: {
"newDate": "2020-11-26T20:57:55"
}
То есть, пропадает буква Z
. Приходится делать так:
internal static string DateTimeStringToUtcString(string s)
{
if (!DateTime.TryParseExact(s, "MM/dd/yyyy HH:mm:ss",
null, DateTimeStyles.None, out DateTime dateTime))
{
return s;
}
return $"{dateTime:yyyy-MM-dd\"T\"HH:mm:ss}Z";
}
Есть ли более нормальный способ, кроме как через интерфейс сериализации?