如何使用Calendar API提前2小时获取时间?

时间:2015-08-17 19:48:21

标签: java calendar simpledateformat

我需要获取我的开始日期和时间,因为今天的日期和时间应该是00:00,但结束时间应该是当前时间 - 2.在我下面的代码中,我无法理解如何将结束时间作为当前小时 - 2.

DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm");
Calendar startDate = new GregorianCalendar();
startDate.set(Calendar.MINUTE, 0);
Calendar endDate = (Calendar) startDate.clone();
startDate.set(Calendar.HOUR_OF_DAY, 0);

String startTime = df.format(startDate.getTime());
String endTime = df.format(endDate.getTime());

System.out.println(startTime);
System.out.println(endTime);    

如果我刚刚运行上面的代码,这就是打印出来的内容:

2015/08/17 00:00
2015/08/17 12:00

但是我希望结束时间比中午时间提前2小时10:00,所以它应该打印出来:

2015/08/17 00:00
2015/08/17 10:00

我该怎么做?

更新 -

这就是我的尝试:

    Calendar startDate = new GregorianCalendar();
    startDate.set(Calendar.MINUTE, 0);
    Calendar endDate = new GregorianCalendar();
    endDate.add(Calendar.HOUR, -2);

    String startTime = df.format(startDate.getTime());
    String endTime = df.format(endDate.getTime());

    System.out.println(startTime);
    System.out.println(endTime);

这就是打印出来的内容:

2015/08/17 12:00
2015/08/17 10:53

1 个答案:

答案 0 :(得分:2)

您可以使用Calendar的{​​{1}}方法添加负数小时数。像这样:

add(int field, int amount)

Link to the documentation