将X小时添加到日期&时间

时间:2014-05-09 00:21:08

标签: java date time calendar forward

我目前正在提取时间和日期:

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

这将返回示例' 05/14/2014 01:10:00'

现在我正在努力做到这一点,所以我可以增加一个小时,而不必担心新的一天或一个月等。

我将如何获得' 05/14/2014 01:10:00'但后来以相同的格式持续了10个小时?

提前致谢。

4 个答案:

答案 0 :(得分:7)

查看Calendar对象: Calendar

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, 10);
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
System.out.println(dateFormat.format(cal.getTime()));

答案 1 :(得分:2)

正如其他人所提到的,Calendar类就是为此而设计的。

从Java 8开始,您也可以这样做:

DateTimeFormatter dateFormat =
    DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");

LocalDateTime date = LocalDateTime.now();
System.out.println(dateFormat.format(date));
System.out.println(dateFormat.format(date.plusHours(10)));

java.time.format.DateTimeFormatter使用了许多与java.text.SimpleDateFormat相同的模式字母,但它们并不完全相同。有关详细信息,请参阅DateTimeFormatter javadoc

答案 2 :(得分:0)

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

/*
 * Add x hours to the time
 */

int x = 10;

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

calendar.add(Calendar.HOUR, x);

System.out.println(dateFormat.format(calendar.getTime()));

控制台输出:

05/08/2014 20:34:18
05/09/2014 06:34:18

答案 3 :(得分:0)

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date currentDate = new Date();
final long reqHoursInMillis = 1 * 60 * 60 * 1000;  // change 1 with required hour
Date newDate = new Date(currentDate.getTime() + reqHoursInMillis);
System.out.println(dateFormat.format(newDate));

这将以给定的日期格式在当前时间添加1小时。希望它有所帮助。