DateTime数据类型的XML序列化及时区问题
今天有用户提到了数据库时间与界面显示的时间不一致,发现是由于Remoting在传输日期类型数据时,自动根据机器的区域设置进行了时区转换,所以仔细在网上找了找这方面的资料,现整理如下,供参考。
一、.Net 2.0中,DataColumn增加了一个属性:DateTimeMode,用于控制日期的Xml序列化问题。见下面抓图:
二、对实体Xml序列化处理,可以在属性名前加XmlElement Attribute,只可惜,XmlElement 的DateType只有date,dateTime,time三种类型,没有即有日期又有时间,但不包含时区信息的格式:
三、对日期参数,这个就需要使用到DateTime的一个构造函数参数DateTime(Int64, DateTimeKind),就是DateTimeKind了,DateTimeKind也有Local,Unspecified ,UTC三个枚举值。这三个值的处理结果与DataColumn类似。