我想从long
时间戳值中获取年,月,日和小时。我发现了许多从时间戳值创建Calendar
的示例,但我没有得到我想要的内容。
我写了以下
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 ) );
1488866400
是星期二,2017年3月7日06:00:00 GMT,所以我希望上面的代码能给我一年2017
,一个月2
和日期7
,但它给了我一年1970
,一个月0
和一天17
。
任何人都可以告诉我,如果我做错了什么或是否可以用不同的方式制作?
答案 0 :(得分:4)
将您的时间戳乘以1000。
long timestamp = 1488866400 * 1000;
您的时间戳以秒为单位,日历使用毫秒
答案 1 :(得分:0)
试试这个:
long timestamp = 1488866400;
LocalDate date = Instant.ofEpochMilli(timestamp).atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(date.getYear() );
System.out.println( date.getMonth() );
System.out.println( date.getDayOfMonth() );