使用.NET创建JSON DateTime字符串

由于一个与此问题无关的奇怪原因,我需要创建一个表示DateTime的
JSON兼容子字符串,并将手动插入更大的JSON字符串,稍后将由.NET的DataContractJsonSerializer进行解析.我想出了以下方法:

static readonly DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(DateTime));
private static string ToJsonString(DateTime time)
{
 using (var memStream = new MemoryStream())
 {
  s.WriteObject(memStream, time);
  return Encoding.UTF8.GetString(memStream.ToArray());
 }
}

有没有更简单的方法可以做到这一点,或上述代码可以以任何方式优化?或者上面的代码中是否有错误?

如果我可以在不使用DataContractJsonSerializer的情况下完成它,那将非常酷,因为字符串构建也将在纯.NET 1.1进程中完成.

最佳答案 你能用毫秒来自时代的方法吗?喜欢这个扩展方法?

 public static class DateTimeExtensions
    {
        private static readonly DateTime Epoch = new DateTime(1970, 1, 1);

        public static string ToJson(this DateTime time)
        {
            return string.Format("\\/{0:0}\\/", (time - Epoch).TotalMilliseconds);
        }
    }
点赞