我在使用 JsonWriter 时遇到了这个问题并需要解决它,因为我们观察到诸如 Day.js 之类的 Javascript 日期库更喜欢毫秒而不是 3 位数。这个问题使我得到了解决方案,所以我想分享它以防其他人有像我这样的用例:
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
using (JsonWriter writer = new JsonTextWriter(sw)) {
writer.Formatting = Newtonsoft.Json.Formatting.None;
writer.DateFormatString="yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff''";
writer.WriteStartObject();
DateTime? date = new DateTime(2021,12,30,23,59,40,250);
writer.WritePropertyName("Date1");
writer.WriteValue(date);
date = new DateTime(2021, 12, 30, 23, 59, 40, 555);
writer.WritePropertyName("Date2");
writer.WriteValue(date);
date = new DateTime(2021, 12, 30, 23, 59, 40, 0);
writer.WritePropertyName("Date3");
writer.WriteValue(date);
date = null;
writer.WritePropertyName("DateNULL");
writer.WriteValue(date);
writer.WriteEndObject();
}
Console.WriteLine(sb.ToString());
这会产生:
{
"Date1": "2021-12-30T23:59:40.250",
"Date2": "2021-12-30T23:59:40.555",
"Date3": "2021-12-30T23:59:40.000",
"DateNULL": null
}
我需要添加的重要行是:
writer.DateFormatString="yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff''";