JAVA 计算500天后的日期,为什么这串代码,重复运行,每次获得的日期都差了好几天,还会出现1月50号,不知道咋回事,架构师们解答下吧

JAVA 计算500天后的日期,为什么这串代码,重复运行,每次获得的日期都差了好几天,还会出现1月50号,不知道咋回事,架构师们解答下吧
第①次运行:2025-01-21
第②次运行:2025-01-50
第③次运行:2025-01-10
第④次运行:2025-01-28

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

//500天后的是几月几日

public class Test {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sd  = new SimpleDateFormat("yyyy-MM-ss");
        Date date = new Date();
        long time = date.getTime();
        System.out.println(sd.format(time+(500*24l*60*60*1000)));
    }
    }

SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); //dd不是ss

System.out.println(sd.format(time+(5002460601000)));//24l,l不需要

【以下回答由 GPT 生成】

问题的原因在于代码中的日期格式字符串有错误。正确的日期格式应为"yyyy-MM-dd",而不是"yyyy-MM-ss"。日期格式中的"ss"代表的是秒,而不是日。

以下是修改后的代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

// 计算500天后的日期是几月几日
public class Test {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        long time = date.getTime();
        System.out.println(sd.format(time + (500 * 24l * 60 * 60 * 1000)));
    }
}

这样,每次运行程序时将会得到正确的日期。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^