我有一个日期变量,其中包含一些数据,例如May 04 10:00:00 IST 2013
. 我需要增加这个变量的时间。如果增加的时间超过 24 小时,它也应该增加日期。我怎样才能做到这一点?
7 回答
使用GregorianCalendar
.
GregorianCalendar
类有add(int field, int amount)
字段应该在哪里的方法DAY_OF_MONTH
。
尝试这样的事情
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);
以下代码演示了向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);
GregorianCalendar 是个好东西,但如果你可以做一些数学运算,你可以这样做: myDate.setTime(myDate.getTime() + incrementInMilliseconds);
或者,如果你想增加秒数: myDate.setTime(myDate.getTime() + incrementInSeconds*1000); 对于分钟,它将是 incrementInMinutes*60*1000 等。
它将自动增加日期、月份、年份等。希望它有所帮助!干杯!
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);
日期算术只能使用日历对象执行。希望这对您有所帮助。
为了简单起见:
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 毫秒。并得到第二天。
只是猜测您正在使用日历
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
希望这可以帮助!
谢谢