首页 > 其他 > 详细

白天不懂夜的黑--java中时区的问题

时间:2014-02-14 21:14:36      阅读:470      评论:0      收藏:0      [点我收藏+]

今天早上,项目站会,在澳大利亚的客户说,我们应该在提交代码之前在本地跑测试。

我心里觉得委屈啊,我提交代码的时候的确都是跑了测试的啊。

多争无益,于是,我又去看看代码到底是不是有什么问题。


在我的DA(Desktop Anywhere)中,我使用和CI上相同的命令又跑了一次,还是OK的。

在这里被卡住了一下,于是找澳大利亚的客户帮忙看看是不是CI上的配置发生了变化。

客户说CI是OK的,他把代码update到他的DA上跑,也是挂的。

我又找另外一个在成都的同事,用他的DA跑一次,也是OK的。

奇怪。。。

NND,难道是RP有被虐了。


bubuko.com,布布扣


后来想到代码中有一段逻辑是和时间相关的,难道是因为成都和澳大利亚的时差造成的?

试试看,把DA的时区改成了澳大利亚时区(UTC+10)。

嘿嘿,还真的出现问题了。


我们使用的数据库是18摸的数据库,在创建一个新的record的时候,使用的是“CURRENT TIMESTAMP”

这个时候,“CURRENT TIMESTAMP”是不包含时区信息的。

于是,查阅了文档以后,我们把SQL改成了“CURRENT TIMESTAMP WITH TIME ZONE”。(CURRENT TIMESTAMP文档)

满心欢喜的认为应该可以解决这个问题了。


但是,又挂了。

日本人。


终于,也就是finally,我们找到了这个文档(CURRENT TIMESTAMP WITH TIME ZONE之于Java

原来在创建表的时候,column的数据类型应该设置成CURRENT TIMESTAMP WITH TIME ZONE。

而且,在读取,更新这个column的时候,应该使用的是com.ibm.db2.jcc.DBTimestamp。


人艰不拆啊

白天不懂夜的黑--java中时区的问题

原文:http://blog.csdn.net/kiwi_coder/article/details/19170563

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!