gpt4 book ai didi

java - Date1.before(Date2) 未返回预期结果

转载 作者:行者123 更新时间:2023-12-01 10:56:42 24 4
gpt4 key购买 nike

我正在尝试比较日期,以便找到与当前日期(今天的日期)最接近的两个日期。

但是,我没有使用 Date.before() 获得预期结果。

代码在这里:

Date currentDate;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM");

public Date getDate(){
currentDate = new Date();
//Toast.makeText(Happenings.this, currentDate, Toast.LENGTH_SHORT).show();
return currentDate;
}

public String[] compareDate(Date currentDate){
String[] closestDates = new String[2];
//Toast.makeText(Happenings.this, sdf.format(currentDate), Toast.LENGTH_SHORT).show();
try {
Date date1 = sdf.parse("20/01");
Date date2 = sdf.parse("09/08");
Date date3 = sdf.parse("24/12");
Date[] availableDates = {date1, date2, date3}; // dd/mm
//Toast.makeText(Happenings.this, sdf.format(date1), Toast.LENGTH_SHORT).show();
if (currentDate.before(date3)) {
Toast toast = Toast.makeText(Happenings.this, "Before Festival", Toast.LENGTH_SHORT);
toast.show();
}
}
catch (ParseException e){
Toast.makeText(Happenings.this, "Catch", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}


return closestDates;
}

我现在得到的是 currentDate.before(date3) 计算结果为 false,currentDate.after(date3) 计算结果为 true。这与预期不同,因为 08/11 应该在 24/12 之前。

最佳答案

我可能是错的,但如果你尝试 date2.before(date3) 并且它将评估为 true,那么我会猜测简单地解析日期和月份将年份设置为默认的 1970 年而不是当前年份。如果是这种情况,那么我建议您手动设置年份,或将年份添加到 sdf。

关于java - Date1.before(Date2) 未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33590339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com