我的java程序遇到了问题。
我正在使用时间戳对数据库进行查询,但我得到的时间戳错误。
在我的 VM 上,我已将日期设置为太平洋时间:
date
Wed Oct 30 09:50:43 PDT 2013
也
timedatectl status
Local time: Wed 2013-10-30 09:52:30 PDT
Universal time: Wed 2013-10-30 16:52:30 UTC
Timezone: US/Pacific (PDT, -0700)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2013-03-10 01:59:59 PST
Sun 2013-03-10 03:00:00 PDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2013-11-03 01:59:59 PDT
Sun 2013-11-03 01:00:00 PST
但是当我的程序执行system.getCurrentMilis()时,返回以下时间戳:
2013-10-30 11:47:16.884
我不确定为什么会这样。 如果有人能告诉我出了什么问题,或者我可以检查什么,那就太棒了
谢谢!
编辑:
//- Get maximum timestamp from previous query
Timestamp maxTimestamp = (new Timestamp( System.currentTimeMillis() ) ;
//- Compute query parameters (see notes above)
Timestamp lowerLimit = new Timestamp( maxTimestamp.getTime() - 500) ;
System.out.println("lowerLimit=" + lowerLimit ) ;
Timestamp upperLimit = new Timestamp( System.currentTimeMillis());
System.out.println("upperLimit=" + upperLimit ) ;
system.getCurrentMilis() 给出了从 1970 年初开始的 ms 的长表示量 ms。当您将其解析为字符串时,您很可能会按时区和夏令时进行调整。