DateTime
を使用して現在の時刻をシリアル化するとDataContractJsonSerializer
、次のようになります1307654074638-0500
。
によって逆シリアル化できる独自のJSONを生成したいのですが、同じ形式でDataContractJsonSerializer
を生成する方法がわかりません。DateTime
エポックからのミリ秒数をベースにしていると思いますが、6時間程度ずれた数値が出続けています。これは、意味のあるタイムゾーン(私は中部標準時です)と関係があると思います。
var myDate = DateTime.Now;
var epoch = new DateTime(1970, 01, 01, 01, 0, 0);
var serializer = new DataContractJsonSerializer(typeof (DateTime));
var ms = new MemoryStream();
serializer.WriteObject(ms, myDate);
Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray()));
Console.WriteLine((myDate.AddTicks(-epoch.Ticks)).Ticks / 10000);
出力
"\/Date(1307654587318-0500)\/"
1307632987318
または簡単に比較するため
1307654587318-0500
1307632987318