-2

我有一个日期变量,其中包含一些数据,例如May 04 10:00:00 IST 2013. 我需要增加这个变量的时间。如果增加的时间超过 24 小时,它也应该增加日期。我怎样才能做到这一点?

4

7 回答 7

3

使用GregorianCalendar.

GregorianCalendar类有add(int field, int amount)字段应该在哪里的方法DAY_OF_MONTH

于 2013-05-08T12:47:50.777 回答
3

尝试这样的事情

 String myTime = "14:10";
 SimpleDateFormat df = new SimpleDateFormat("HH:mm");
 Date d = df.parse(myTime); 
 Calendar cal = Calendar.getInstance();
 cal.setTime(d);
 cal.add(Calendar.MINUTE, 10);
 String newTime = df.format(cal.getTime());

使用 Apache Commons Lang:

Date incrementedDate = DateUtils.addHour(startDate, 1);

http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/time/DateUtils.html

于 2013-05-08T12:48:23.163 回答
1

以下代码演示了向Date对象添加 3 小时

    Date d = new Date(System.currentTimeMillis());
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.add(Calendar.HOUR, 3);
    d = c.getTime();

您可以获取 的实例Calendar,并使用该add方法可以相应地添加小时、分钟或秒。上面的代码将添加3到当前时间。同样,您可以将 30 分钟添加到当前分钟

c.add(Calendar.MINUTE, 30);
于 2013-05-08T12:52:12.177 回答
1

GregorianCalendar 是个好东西,但如果你可以做一些数学运算,你可以这样做: myDate.setTime(myDate.getTime() + incrementInMilliseconds);

或者,如果你想增加秒数: myDate.setTime(myDate.getTime() + incrementInSeconds*1000); 对于分钟,它将是 incrementInMinutes*60*1000 等。

它将自动增加日期、月份、年份等。希望它有所帮助!干杯!

于 2013-05-08T12:53:40.130 回答
0
Calendar cal = Calendar.getInstance();
    Date dateVariable = cal.getTime();   // This gives current Date
    System.out.println(dateVariable);


    cal.add(Calendar.HOUR, 13);  // Incrementing hour by 13,
    cal.add(Calendar.MINUTE, 20); // Incrementing minutes by 20, similarly you can increment seconds and milisec
     Date updatedDate = cal.getTime();
     System.out.println(updatedDate);

日期算术只能使用日历对象执行。希望这对您有所帮助。

于 2013-05-08T12:50:29.850 回答
0

为了简单起见:

Date date = new Date(System.currentTimeMillis()); //today
date = new Date(date.getTime() + 24 * 60 * 60 * 1000); //new date adding a day
System.out.println(date); //printing the date in the standard format

date 存储为 long(自大纪元以来的毫秒数),因此您可以添加一天 24 小时、一小时乘以 60 分钟、一分钟乘以 60 秒、一秒乘以 1000 毫秒。并得到第二天。

于 2013-05-08T12:53:18.017 回答
0

只是猜测您正在使用日历

Calendar c = new GregorianCalendar(); // creates calendar
//You can do arithmetic in this line  
//c.add(Calendar.HOUR,-24) //24 hour subtracting
c.add(Calendar.HOUR,24); // 24 hour adding.. 
c.getTime(); //new date is returned 

希望这可以帮助!

谢谢

于 2013-05-08T12:53:24.327 回答