C#中DATETIME类型的XML序列化问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 14:56:36
默认是包含时区的,请问将一个object序列化时(该object是自己写的一个类的实例,有属性为DATETIME型)问如何修改DATETIME为Local的。或者在写MSSQL的时候如何将序列化儿来的DATETIME字符串(如'2007-08-17T19:57:39.5+08:00')插入DATETIME列。
这里突然想到的问题是一美国用户提交数据到中国的数据库,英国的用户打开时,时间的显示是否能转换为该英国用户的本地时间,如何弄(asp.net+C#+mssql)。
深入JavaScript与.NET Framework中的日期时间(3):JavaScript中的Date类型(中) http://www.cnblogs.com/JeffreyZhao/archive/2007/06/06/Inside_Date_and_Time_in_JavaScript_and_DotNet_Framework_3.html
这篇文章给出了一种方法。(系列文章)

你可以在存数据到 mysql 的时候全部存成 UTC 的(Timezone等于0) DateTime.UtcNow

然后在显示时间的时候根据用户的时区去调整时间。比如中国是 +8 的,就写成:

DateTime utc = ...;
DateTime chinaTime = utc.AddHours(8);

向你这种已经存有时区的,就根据服务器和用户时区的差来调整时间

1、在存数据到 mysql 的时候全部存成 UTC 的(Timezone等于0) DateTime.UtcNow
,然后在显示时间的时候根据用户的时区去调整时间。比如中国是 +8 的,就写成:
DateTime utc = ...;
DateTime chinaTime = utc.AddHours(8);
2、如果已经存有时区的,还要根据服务器和用户时区的差来调整时间。