当前位置:编程学习 > C#/ASP.NET >>

.NET中的DataSet序列化时间(时区)问题

小弟现在有一个问题希望大家帮忙解决
公司使用的数据库中表的时间字段使用的数据类型为DataTime
因为我们分公司在国外,所以出现是时差这个问题
从中国传过去的数据在国外客户端上被改成了国外的当地时间
例如中国时间为: 2007-2-13 16:02:57 
在美国显示为:2007-2-13 2:02:33
初步认定是DataSet序列化的问题,读取了本地时区,将时间换算了本地时间
我现在的要求传过去的时间不改变,即是想让国外客户端也显示2007-2-13 16:02:57 
因为设计初期没有考虑这个问题,所以想用最好的办法解决
伤筋痛骨的话还是不好!! --------------------编程问答-------------------- 格式化显示的时间, 其他保持不变 --------------------编程问答-------------------- 大哥,其实这个方法我们也考虑过
但是那样我们的更改会有多大啊,还有测试压力
虽然能够解决问题,但是难免伤筋痛骨 --------------------编程问答-------------------- up --------------------编程问答-------------------- 沉得很好咯,我自己up一下 --------------------编程问答-------------------- 多传一个double型的时区参数吧 --------------------编程问答-------------------- DB里存GMT时间,然后再加个栏位存自己的时区 --------------------编程问答-------------------- 帮顶.. --------------------编程问答-------------------- 可以使用Globallization中的UICaulture和CurrentCaulture属性来在数据反序列化之前指定为中国,反序列化后再指定回去,看你们的程序是否有全球化的要求。 --------------------编程问答-------------------- 这样看行不行,建一个分时表,和你那个数据表关联,存储不同时区的即时时间,显示时间的时候就读取该表.然后就可以实现两边都是用当地时间显示了. --------------------编程问答-------------------- 主要是时区的问题,我想可以从4方面来考虑
1,使用string来传递datetime,这样就没有时区的问题了。
2,显示强制时使用中国北京时区转换,这样时间显示也没问题。
3,统一使用gtm时间,显示时根据需要指定一个时区后转换。
4,在序列化时做功夫,遇到时间日期类型数据时忽略时区,这样对程序影响最小,但需要自己重写反序列化代码。 --------------------编程问答-------------------- 我有一个相类似的需求。服务器端显示的时间是什么,客户端就是什么。在客户端忽略客户端的时区。

基本要求是不要改变数据库结构,这样对程序的改动太大。

也不想用字符串来表示时间。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,