将Unix时间戳转换为Java日期

时间:2013-08-01 05:51:52

标签: java date-format

代码如下:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String logTime = format.format(new Date((format.parse("2013-6-30").getTime()+25*24*3600*1000)));
    String logTime1 = format.format(new Date((format.parse("2013-6-30").getTime()+24*24*3600*1000)));
    System.out.println("logTime:  "+logTime);
    System.out.println("logTime1:  "+logTime1);

这是输出:

  logTime:  2013-06-05
  logTime1:  2013-07-24

这里有什么问题?

1 个答案:

答案 0 :(得分:5)

你有一个溢出。尝试

25L * 24*3600*1000

所以价值很长。您的IDE应该突出显示您的内容会溢出。

enter image description here

这会打印一个明显不正确的数字。

-2134967296

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
long time = format.parse("2013-6-30").getTime();
String logTime = format.format(new Date(time + 25L * 24 * 3600 * 1000));
String logTime1 = format.format(new Date(time + 24L * 24 * 3600 * 1000));
System.out.println("time + 25d:  " + logTime);
System.out.println("time + 24d:  " + logTime1);

打印

time + 25d:  2013-07-25
time + 24d:  2013-07-24