日期:2014-05-16  浏览次数:20784 次

UNIX时间戳换算问题
    公司项目需要查询远在美国的数据库,而那边存放的数据库的时间是以当地的时间戳来存放的,当查询数据的时候就出现了问题,若用日期like查询和用UNIX时间戳查询出来的是不一样的结果,怎样处理这样的时间差值呢?
    首先,我们需要理解两个概念,就是日期和UNIX时间戳,日期是有时区分别的,就比如,我们这里是 2013-04-12 23:33:23 而在美国的日期是:2013-04-12 10:33:23也就是是说美国所用时区(西五区)比东八区晚十三个小时。而UNIX时间戳是指从1971年一月一日到今天所经历的秒数。是没有时区差别的,也就是说,某个时间点的时间戳是全球统一的。你比如我们时间戳到了1000000,我们的日期是 2013-04-12 23:33:23,同时,美国的时间戳也到了1000000,而他们的日期是2013-04-12 10:33:23,若要等到他们的日期为2013-04-12 23:33:23则时间戳会是:1000000+3600*13,所以我们在以这边的日期去查询的时候需要的是加上 相差的十三个小时的时间戳,而不是减去。