繁体   English   中英

从小时:分钟获取下一个日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM