我想从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是Tue,2017年3月7日,06:00格林尼治时间,所以我希望上面的代码给我2017,月份2和日期7,但它给我的年份1970,月份0和日期17。
有人能告诉我,我是否做错了什么,或者它是否可以用不同的方式制造?
发布于 2017-03-07 23:00:57
把你的时间戳乘以1000。long timestamp = 1488866400 * 1000;
您的时间戳以秒为单位,日历使用毫秒。
发布于 2017-03-07 23:09:05
试试这个:
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() );https://stackoverflow.com/questions/42659929
复制相似问题