由于一个与此问题无关的奇怪原因,我需要创建一个表示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);
}
}