添加/子小时到我的Calendar对象

时间:2014-03-14 11:29:36

标签: java calendar

我在项目中使用日历类。在某些情况下,我需要减去几个小时到一个日期。我可以很容易地面对这一点。

当我减去小时并且它改变了一天(一天或多天后)时,问题是

我该如何管理?

提前谢谢你, 迭。

2 个答案:

答案 0 :(得分:0)

Calendar包含add()roll()方法:

  

add(int field, in amount):根据日历的规则,在指定的日历字段中添加或减去指定的时间。

     

roll(int field, in amount):将指定的(已签名)金额添加到指定的日历字段,而不更改较大的字段

因此,如果您想在周一,23:00和周二,01:00添加2小时,请执行:

calendar.add(Calendar.HOUR_OF_DAY, 2);

如果你想在星期一01:00做到:

calendar.roll(Calendar.HOUR_OF_DAY, 2);

答案 1 :(得分:0)

我相信使用Calendar中的普通add()方法,您可以控制要减去的小时数,考虑一天或多天的过去。请参阅此示例,删除5天3小时:

public void changeDate() {

    SimpleDateFormat sdf = new SimpleDateFormat("d MMM yyyy hh:mm aaa");
    Calendar calendar = new GregorianCalendar(2013, Calendar.MARCH, 12);
    String date1 = sdf.format(calendar.getTime());
    System.out.println("Date1: "+date1); 

    //Remove 2 days and 2 hours
    calendar.add(Calendar.DAY_OF_MONTH, -2);
    calendar.add(Calendar.HOUR_OF_DAY, -2);


    String date2 = sdf.format(calendar.getTime());
    System.out.println("Date2: "+date2);

}

如果您想删除一小时但阻止更改日期,请改用roll()方法