[英]Get next Date from day hour:minutes
我正在尝试获取与日期格式匹配的下一个日期,例如获取与“ 1 10:00”匹配的下一个日期(格式:u HH:mm)。
示例 :例如,如果我们在6月2日星期二-22:00 ,例如,我想将6月7日星期日-10:00作为日期对象(因为它确实匹配“ 1 10:00”格式)
编辑:是“ u”而不是“ F”,对不起!
如果我很好地理解了您的问题,那么就可以解决问题。 基本上将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;
}
}
打印:Wed Jun 03 10:00:00 VET 2015 ...并添加了1440分钟。
我终于找到了解决方案:
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;
}
它将返回与我的格式匹配的下一个日期。 我使用不推荐使用的方法,但会尽快修复。
感谢您的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.