Java时间戳,无法获取正确的值

Java时间戳,无法获取正确的值,java,mysql,timestamp,unix-timestamp,Java,Mysql,Timestamp,Unix Timestamp,我想把这个时间戳转换成日期。我是这样做的: Timestamp stamp = new Timestamp(1416990366); System.out.println("TimeStamp: " + stamp.toString()); Date mDate = new Date(stamp.getTime()); 但是我得到了1月17日星期六13:06:30 GMT+1970年03:30而它一定是2014年11月26日星期三08:26:06 GMT怎么了 编辑:

我想把这个时间戳转换成日期。我是这样做的:

    Timestamp stamp = new Timestamp(1416990366);
    System.out.println("TimeStamp: " + stamp.toString());
    Date mDate = new Date(stamp.getTime());
但是我得到了
1月17日星期六13:06:30 GMT+1970年03:30
而它一定是
2014年11月26日星期三08:26:06 GMT
怎么了

编辑:

我从服务器上得到这个值,我想他们切断了毫秒,所以我必须将它乘以1000,但我什么也没有得到,再次是错误的值。
为什么这仍然不起作用
Timestamp stamp=new Timestamp(1000*mIssue.getReleaseTime())
where
mIssue.getReleaseTime()=1416990366

有人能帮忙吗?

指定给
时间戳
构造函数的时间是自1970年1月1日00:00:00 GMT以来的时间(以毫秒为单位)。
1416990366
计算为从该历元开始的大约16天,因此您将获得输出

如果需要当前时间,可以将
System.currentTimeMillis()
传递给构造函数

编辑: 由于从服务器获取的时间以毫秒为单位,因此可以乘以1000并转换为
long
,如下所示:

Timestamp stamp = new Timestamp((long) 1000 * mIssue.getReleaseTime());
java.time 现代的方法是使用java.time类

Instant instant = Instant.ofEpochSecond( 1416990366L );
调用
toString
生成一个字符串,该字符串以标准ISO 8601格式表示其日期时间值

2014-11-26T08:26:06Z

是UTC时间线上的一个时刻,分辨率为


大部分java.time功能在中被移植到java 6和7,并进一步适应于中(请参阅)。

感谢您的帮助,我从服务器上获得了这个值,我想他们切断了毫秒,所以我必须将它乘以1000,但我没有得到任何结果,而且还是得到了错误的值。为什么这仍然不起作用
Timestamp stamp=new Timestamp(1000*mIssue.getReleaseTime());
其中
mIssue.getReleaseTime()=1416990366
如果这解决了任何问题
系统输出打印LN(新日期(0));
prints Thu Jan 01 02:00:00 EET 1970!@mmlooo您需要将结果转换为
long
。答案已更新。@mmlooo请参阅我为ThreeTenABP项目添加的最后一段。感谢您引入新库,但实际上在我的情况下,添加新库也会增加方法计数并增加apk的二进制大小,所以我仍然除非我需要大量的API,否则我更喜欢使用旧的编码风格。再次感谢:-)