Java8 时间日期的使用与格式化
Java8 初次加入了时间日期处理的新框架--java.time包。新的 API 与 Joda-Time 库有相似的设计理念,但并不是在其基础上构建的。Java8 新的日期和时间库具备了更好的语意化表述,更加明确和易于使用。
基本用法
LocalDate、LocalDateTime、LocalTime 是最常用的日期时间类。
// 获取当前日期
LocalDate localDate = LocalDate.now();
System.out.println(localDate); //2021-04-16
// 获取当前时间
LocalTime localTime = LocalTime.now();
System.out.println(localTime); //13:21:11.560157
// 获取当前日期时间
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime); //2021-04-16T13:21:11.560243
日期时间格式化
Formatter 类提供了各种预定义格式的静态常量,它们可以用于日期格式化。其常用的格式有“yyyy-MM-dd”、“dd/MM/yyyy”等。我们还可以自定义格式,使用 DateTimeFormatter
类来完成日期和时间字符串的格式化操作。
// 格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(localDateTime.format(formatter)); //2021-04-16 13:21:11
// 解析
LocalDateTime parsedTime = LocalDateTime.parse("2016-03-04 11:30:50", formatter);
System.out.println(parsedTime); //2016-03-04T11:30:50
示例代码1:获取指定日期的前一天和后一天
LocalDate localDate = LocalDate.of(2021, 4, 16);
// 获取前一天日期
LocalDate yesterday = localDate.minusDays(1);
System.out.println(yesterday); //2021-04-15
// 获取后一天日期
LocalDate tomorrow = localDate.plusDays(1);
System.out.println(tomorrow); //2021-04-17
示例代码2:计算两个日期之间相差的天数和月数
LocalDate firstDate = LocalDate.of(2021, 3, 10);
LocalDate secondDate = LocalDate.of(2021, 4, 16);
// 相差的天数
long daysBetween = ChronoUnit.DAYS.between(firstDate, secondDate);
System.out.println("Days between: " + daysBetween); //37
// 相差的月数
long monthsBetween = ChronoUnit.MONTHS.between(firstDate.withDayOfMonth(1), secondDate.withDayOfMonth(1));
System.out.println("Months between: " + monthsBetween); //1
以上两个例子只是 Java8 时间日期处理的冰山一角,在实际工作中,我们还需要结合具体需求,更多的使用和探索。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java8 时间日期的使用与格式化示例代码详解 - Python技术站