我正在尝试获取与日期格式匹配的下一个日期,例如获得匹配的下一个日期" 1 10:00" (格式:你HH:mm)。
示例:如果我们星期二6月2日 - 22:00 (例如),我想星期日6月7日 - 10:00 作为Date对象(因为它匹配" 1 10:00"格式)
编辑:这是"你"而不是" F"对不起!答案 0 :(得分:-1)
如果我理解你的问题,那就可以了。基本上将1分钟添加到当前日期,直到您按照其格式找到所需的日期。
你想要设定一个比真实更安全的条件。
Calendar calendar = Calendar.getInstance();
Date date = new Date("06/02/2015 10:00");
calendar.setTime(date);
SimpleDateFormat sdf = new SimpleDateFormat("F HH:mm");
while (true) {
calendar.add(Calendar.MINUTE, 1);
if (sdf.format(calendar.getTime()).equals(sdf.format(date))) {
System.out.println(calendar.getTime());
break;
}
}
这打印: 3月3日星期三10:00:00 VET 2015 ...并且增加了1440分钟。
答案 1 :(得分:-1)
我终于找到了解决方案:
public static Date getNextDate(SimpleDateFormat format, String value) {
try {
Date date = format.parse(value);
Calendar calendar = Calendar.getInstance();
int diff = date.getDay() - calendar.get(Calendar.DAY_OF_WEEK);
if (!(diff > 0)) {
diff += 7;
}
calendar.add(Calendar.DAY_OF_MONTH, diff);
calendar.set(Calendar.HOUR_OF_DAY, date.getHours());
calendar.set(Calendar.MINUTE, date.getMinutes());
calendar.set(Calendar.MINUTE, date.getSeconds());
return calendar.getTime();
} catch (ParseException exception) {
exception.printStackTrace();
}
return null;
}
它将返回与我的格式匹配的下一个日期。我使用弃用的方法,但我会尽快修复它。
感谢您的帮助!