Gun

学无止尽

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

正在开发一个W/C的项目,服务端和数据库在香港,全球5大洲都有一个办公室在使用Client。已经打算开始正式使用了才发现这个重大问题, 现在向各位老师跪求解决方法,这真是救命啊。

数据库里有好多DateTime类型的字段,WS端用的向导生成的DataSet, Client进行WS引用,然后在WindowsForm里面用用了自定义继承DateTimePicker的控件绑定DateTime类型的字段。DateTimePicker的显示格式定义为dd-MMM-yyyy,一切在国内开发和测试都没问题,香港测试也没问题。在美国办公室测试时,就出问题了,美国用户在一个日期框中填入02-JUN-2004,香港办公室看到的却是03-JUN-2004。检查SQL Server, 保存的数据是2004-07-03 03:45。美国用户打开这条记录还是显示02-JUN-2004。这时才知道,美国Client端的DataSet得到输入的2004-07-02 14:45后,DateTime类型有了本地的TimeZone信息,然后DataSet被传到香港的WS进行保存,WS在将DataSet里的数据生成SQL的保存语句的时候,会将美国时区的DateTime转换成本地时区的DateTime,也就是美国的2004-07-02 14:45 会转换成香港的2004-07-03 03:45。在美国的Client从香港的WS得到DataSet进行显示是,DateTime里面有香港的TimeZone信息,所以Client会将香港的2004-07-03 03:45转换为美国的2004-07-02 14:45 在街面上进行显示。香港的client显示是就是2004-07-03了。同样,每个洲的办公室都有这个问题。可是我们的客户要求看到相同的界面显示,他们不需要时间信息,只要求日期信息,我该怎么办?请大家救救命啊。

posted on 2004-07-13 01:51  Gun  阅读(674)  评论(2编辑  收藏  举报