从day hour获取下一个日期:分钟

时间:2015-06-07 18:01:47

标签: java

我正在尝试获取与日期格式匹配的下一个日期,例如获得匹配的下一个日期" 1 10:00" (格式:你HH:mm)。

示例:如果我们星期二6月2日 - 22:00 (例如),我想星期日6月7日 - 10:00 作为Date对象(因为它匹配" 1 10:00"格式)

编辑:这是"你"而不是" F"对不起!

2 个答案:

答案 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;
}

它将返回与我的格式匹配的下一个日期。我使用弃用的方法,但我会尽快修复它。

感谢您的帮助!