我在项目中使用日历类。在某些情况下,我需要减去几个小时到一个日期。我可以很容易地面对这一点。
当我减去小时并且它改变了一天(一天或多天后)时,问题是。
我该如何管理?
提前谢谢你, 迭。
答案 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()方法