`
seya
  • 浏览: 356176 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Web开发中的时区转化问题

    博客分类:
  • J2EE
阅读更多
最近在项目开发中遇到了一个时间转化问题,在前台的flex端用 new Date()取得当前的时间,然后传输到服务器端,在服务器端需要取得他的时,分,秒,就使用了new timestamp(date.getTime());来转化。date是之前客户端传过来的时间。在本地测试是没有问题的,但是到pre-dev上的时候出现了前段输入时间和实际数据库存储的时间不宜值得bug.比较一下,相差了12个小时。仔细研究发现,时区问题导致的。本地的环境,客户端和服务器都在China,但是pre-dev的服务器是在波士顿的。在flex的客户端new 一个date出来的时间,是包含时区的,就是说 date.getTime()取得的毫秒是当前时间先转化为GMT时区的时间,然后再减去1900.1.1 00:00:00得到的值。而在java代码里面new timestamp(time)的时候,是将1900.1.1 00:00:00转化为当前时区的时间,然后再加上time。这样一来,flex端的时间和java里面生成的时间就相差了两个时区之差的时间,即北京时间和波士顿时间的时差,是12个小时。
要解决这个问题,一个方法是在java端创建一个newdate,然后取得传过来的时间的时,分,秒,。或者用TimeOffSet取得当前时区差值,减一下。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics