首页 > 解决方案 > 在java中使用simpledateformat添加n天

问题描述

我们这里有一个java代码片段

import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
    Date date = new Date();
    int days = 5;
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    String strDate= formatter.format(date.getTime() + (days*86400000));
    System.out.println(strDate);
}
}

添加 n 号。到今天为止的天数。结果将是正确n=24的,但在n=24. 为什么会这样?

标签: javasimpledateformat

解决方案


问题是int is overflowing

考虑

    int days = 25;
    int d = days*86400000;
    System.out.println(d);

尝试

    int days = 25;
    long d = days*86400000L;
    System.out.println(d);

推荐阅读