使用java.util.Calendar从时间戳中检索年份和月份时提供错误的数据

时间:2016-03-29 08:33:09

标签: java datetime datetime-format

要从给定的时间戳获取年份和月份,我使用了此代码。但是给出了错误的答案。

    long timestamp = Long.parseLong("1459239223");
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(timestamp);
    System.out.println(cal.get(Calendar.YEAR)); 

但是当使用this时,它会给出连接答案。不知道为什么会这样。

注意:正在使用Java 7 OpenJDK,并询问有关Getting “unixtime” in Java的类似问题。

2 个答案:

答案 0 :(得分:4)

您推荐进行在线转换的网站是正确的。您已设置日历实例的时间(以秒为单位),即乘以1000将毫秒时间转换为秒。

long timestamp = Long.parseLong("1459239223000");
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timestamp);
System.out.println(cal.get(Calendar.YEAR)); 

因此,回答你的问题:Unix时间定义为自UTC 1970年1月1日午夜起经过的的数量。

答案 1 :(得分:0)

你也可以这样做 -

double value = 12.3d;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(value));