0

我收到两个字符串,一个带有日期(例如,“15-05-13”)和一个时间(例如,“10:00”)。

我需要实现的是用两个字符串创建一个日期对象,所以我可以检查现在的日期是否比用两个字符串形成的日期小于 15 分钟。如何将两个字符串放在同一个 Date 对象中?简单地连接两个字符串?我没试过,但我敢打赌它不是那么简单......

谢谢你。

4

3 回答 3

2

解析每个日期/时间后,仅获取自纪元以来的毫秒数并进行比较

try {
    SimpleDateFormat date = new SimpleDateFormat("DD-MM-YY");
    SimpleDateFormat time = new SimpleDateFormat("HH:mm");
    long dateTime = date.parse("15-05-13").getTime() + time.parse("10:00").getTime();
    long mins = 15 * DateUtils.MINUTE_IN_MILLIS;
    if(Math.abs(System.currentTimeMillis() - dateTime) < mins) {
        //yup
    }
}
catch (ParseException e) {
    e.printStackTrace();
}

Math.abs 是查看目标日期是否在现在(过去和未来)的 15 分钟内,而不是过去仅 15 分钟,或者在未来 15 分钟内切换到 dateTime - System.currentTimeMillis()

于 2013-05-13T13:45:58.160 回答
0
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2013);
c.set(Calendar.MONTH, 5);
c.set(Calendar.DAY_OF_MONTH, 23);
Date date = c.getTime();

继续工作。calendar你得到的默认值是用初始化的now

于 2013-05-13T11:43:19.873 回答
0

在这里,c1包含两个日期。

Date date1 = ; // parse date "15-05-13"
Date date2 = ; // parse date "10:00"

Calendar c1 = Calendar.getInstance().setTime(date1);
Calendar c2 = Calendar.getInstance().setTime(date2);

c1.set(Calendar.HOUR, c2.get(Calendar.HOUR));
c1.set(Calendar.MINUTE, c2.get(Calendar.MINUTE));
于 2013-05-13T11:46:53.863 回答