private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* 设置dayOfMonth差别
*/
public static void setDayDiff() {
// 初始化
Calendar calendar = Calendar.getInstance();
calendar.set(2019, 0, 29, 8, 15);
LocalDateTime dt = LocalDateTime.of(2019, 1, 29, 8, 15);
// 日历可以设置日期超过当前月份(月份加一)
calendar.set(Calendar.DAY_OF_MONTH, 32);
System.out.println(sdf.format(calendar.getTime())); // 2019-02-01
// LocalDateTime会做检查(类似于数组越界)
// Exception in thread "main" java.time.DateTimeException:
// Invalid value for DayOfMonth (valid values 1 - 28/31): 32
dt.withDayOfMonth(32); // 抛出异常
}
/**
* 设置月份区别
*/
public static void setMonthDiff() {
// 初始化
Calendar calendar = Calendar.getInstance();
calendar.set(2019, 0, 31, 8, 15);
LocalDateTime dt = LocalDateTime.of(2019, 1, 31, 8, 15);
// 日历设置月份,超出的日期会导致月份加1
calendar.set(Calendar.MONTH, 1); // 设置二月
System.out.println(sdf.format(calendar.getTime())); //2019-03-03
// LocalDateTime会归到当月最后一天
LocalDateTime dt2 = dt.withMonth(2);
System.out.println(dt2); // 2019-02-28T08:15
}
设置日期(新旧API差异)
最新推荐文章于 2023-08-17 12:47:48 发布