C# 序列化和反序列化日期时间

C# 序列化和反序列化日期时间,c#,json,serialization,deserialization,C#,Json,Serialization,Deserialization,我有一个属性为datetime的类,例如 class myclass { DateTime date{get;set;} } 内容是 2015年9月1日00:00:00 我用英语把这个班改成英语 var json = jsonSerialiser.Serialize(myclassInstance); 我反序列化的日期是2015年8月31日22:00:00 反序列化是用 myclass mc = JsonConvert.DeserializeObject<myclass>

我有一个属性为datetime的类,例如

class myclass {
    DateTime date{get;set;} 
}
内容是

2015年9月1日00:00:00

我用英语把这个班改成英语

var json = jsonSerialiser.Serialize(myclassInstance);
我反序列化的日期是2015年8月31日22:00:00 反序列化是用

myclass mc = JsonConvert.DeserializeObject<myclass>(json) as myclass ;
myclass mc=JsonConvert.DeserializeObject(json)作为myclass;
如何保存格式日期?

使用UTC中的日期时间值。这样,您还可以确保电线一端(比如北美)使用的日期/时间与另一端(比如欧洲)接收的日期/时间相同。

原始
日期时间
值的
种类是什么?这几乎肯定是问题所在。(不幸的是,
DateTime
在很多方面都被破坏了,JSON序列化没有简单的方法来解释这一点。)@JonSkeet仅仅保存数据不是简单的类型吗?像java一样,如果没有其他东西,使用起来会非常困难,一个解决方法是将日期转换为字符串,然后对其进行序列化/反序列化。您可以通过调用DateTime.Parse(string)@auburg返回原始DateTime对象。我通常创建一个SerializableDate或类似的东西,它有一个设置日期的Getter和Setter,我在日期处放了一个JsonIgnore。这对OP来说是一个很好的解决方案。@Mafii:我想它坏了,这就是我为什么要创造它。看见