关于夏令时误差

对于跨地域的大型项目来说,不同地域的时间是比较头疼的问题,这次我就碰到了一个。系统场景是这样的,一个系统有2加机构,一个在波兰使用波兰的时区,一个在上海使用上海的时区,我们的系统为了方便用户修改时间,所以时间是和地域的机构所绑定的,同时也允许用户修改他们自己的时区和时间。在我们的系统时间的组成有2部分组成 sysdate(timezone)+time_off_set,是一个包含时区概念的系统时间+时间偏移量(小时)。

由于测试需要,由于现在波兰正处于夏令时,当我们的时间便宜了够大时又超出了夏令时,那么原则上你的时间一旦超出了夏令时你就应该补一个小时。这个时候java计算夏令时没有关系,java会自动给你补一个小时。但是plsql就会有问题 我原先使用的plsql如下:

F_GET_DATE_BY_TIME_ZONE(i_organ_id) +hours/24

很不幸这段plsql并没有为我们补回那失去的一小时,我现在的做法是时间偏移量使用天,而不用小时。

发布了26 篇原创文章 · 获赞 1 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章