在Java中转换时间戳日历

Adr*_*rez 1 java time timestamp calendar date

我想从long时间戳值中获取年,月,日和小时。我发现了很多Calendar从时间戳值创建a的示例,但我没有得到想要的结果。

我写了以下

long timestamp = 1488866400;

Calendar cal = GregorianCalendar.getInstance();
cal.setTimeInMillis( timestamp );

System.out.println( cal.get( Calendar.YEAR ) );
System.out.println( cal.get( Calendar.MONTH ) );
System.out.println( cal.get( Calendar.DATE ) );
Run Code Online (Sandbox Code Playgroud)

1488866400是星期二,2017年3月7日格林尼治标准时间,所以我希望上面的代码可以给我年2017,月2和日7,但是它可以给我年1970,月0和日17

谁能告诉我我做错了什么或者是否可以用其他方式做?

Gia*_*tez 5

乘以1000的时间戳。 long timestamp = 1488866400 * 1000;

您的时间戳为秒,日历使用毫秒