Java CurrenTimeMilis不匹配

Java CurrenTimeMilis不匹配,java,datetime,timezone,Java,Datetime,Timezone,我的java程序有问题 我使用时间戳在数据库上形成一个查询,但是我得到了错误的时间戳 在我的虚拟机上,我将日期设置为太平洋时间: date Wed Oct 30 09:50:43 PDT 2013 也 但是当我的程序运行时,system.getCurrentMilis()返回以下时间戳: 2013-10-30 11:47:16.884 我不知道为什么会这样。如果有人能告诉我出了什么问题,或者我能查到什么,那就太棒了 谢谢 编辑: system.getCurrentMilis()给出了一个表

我的java程序有问题

我使用时间戳在数据库上形成一个查询,但是我得到了错误的时间戳

在我的虚拟机上,我将日期设置为太平洋时间:

date

Wed Oct 30 09:50:43 PDT 2013

但是当我的程序运行时,system.getCurrentMilis()返回以下时间戳:

2013-10-30 11:47:16.884
我不知道为什么会这样。如果有人能告诉我出了什么问题,或者我能查到什么,那就太棒了

谢谢

编辑:


system.getCurrentMilis()给出了一个表示1970年初以来的长数值ms,单位为GMT。当您将其解析为字符串时,很可能会根据时区和夏令时对其进行调整

不返回
字符串
它返回一个
,无论您将
转换为
字符串
时使用的是
时区
,可能是默认值。显示代码。您的默认时区设置是什么?在一些编辑中添加。但是我没有把它转换成字符串,我只是打印出时间戳
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 ) ;