获取当前时间并得到n小时后的时间
1.使用 Date 和 Calendar 结合(推荐)
代码展示
Date now = new Date(); // 获取当前时间
Calendar calendar = Calendar.getInstance(); // 创建一个 Calendar 实例
calendar.setTime(now); // 将当前时间设置到 Calendar 实例中
int currentHour = calendar.get(Calendar.HOUR_OF_DAY); // 获取当前小时(24小时制)
calendar.add(Calendar.HOUR, 2); // 在 Calendar 实例中增加2小时
结果解释
1. Date now = new Date();
now 变量将包含当前的日期和时间。例如,如果当前时间是 2023年10月1日 10:00:00,那么 now 的值将是一个表示这个时间的 Date 对象。
2. Calendar calendar = Calendar.getInstance();
这行代码创建一个 Calendar 实例,默认情况下,它会被初始化为当前的日期和时间。
calendar.setTime(now);
这行代码将 now 的值(当前时间)设置到 calendar 实例中。此时,calendar 的时间与 now 相同。
4. int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
这行代码获取当前小时(24小时制)。如果当前时间是 10:00:00,那么 currentHour 的值将是 10。
5. calendar.add(Calendar.HOUR, 2);
这行代码在 calendar 实例中增加2小时。假设 now 是 10:00:00,那么此时 calendar 的时间将变为 12:00:00。
6. calendar.getTime()
这行代码将返回 calendar 当前的时间(即增加2小时后的时间)。如果 now 是 10:00:00,那么 calendar.getTime() 的结果将是 12:00:00。
总结
now:表示当前的日期和时间(例如 2023年10月1日 10:00:00)。
calendar.getTime():在增加2小时后,表示的时间将是当前时间加2小时(例如 2023年10月1日 12:00:00)。
因此,now 和 calendar.getTime() 的结果在时间上是不同的,calendar.getTime() 是在 now 的基础上增加了2小时后的结果。
2.直接使用 Date 进行加法(不推荐)
虽然可以通过 Date 的 getTime() 方法获取时间戳(毫秒),然后进行加法,但这种方式不够直观,且容易出错。
// 获取当前时间
Date now = new Date();
System.out.println("当前时间: " + now);
// 计算两小时之后的时间
long twoHoursInMillis = 2 * 60 * 60 * 1000; // 2小时的毫秒数
Date twoHoursLater = new Date(now.getTime() + twoHoursInMillis); // 创建新的 Date 对象
System.out.println("两小时之后的时间: " + twoHoursLater);
3.总结
使用 Date 和 Calendar:这是最常见的做法,Calendar 提供了方便的时间加减功能。
直接使用 Date:虽然可以通过时间戳进行加法,但这种方式不够直观,建议使用 Calendar 或 Java 8 的 LocalDateTime。
如果您使用的是 Java 8 或更高版本,推荐使用 LocalDateTime,因为它提供了更好的可读性和可维护性。