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)));
}
}
这样,每次运行程序时将会得到正确的日期。
【相关推荐】