java8 时间日期的使用与格式化示例代码详解

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技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java线程池中多余的线程是如何回收的

    Java线程池可以有效控制线程的数量,提高程序的性能和资源利用率。但是在使用线程池的过程中,我们需要考虑线程池中多余的线程是如何回收的。下面我将从线程池的工作原理、线程池中的线程回收机制两个方面讲解这个问题。 线程池的工作原理 线程池在创建时会预先分配一定数量的线程。当用户提交任务时,线程池就会将任务分配给其中的一个空闲线程执行。如果线程池中没有空闲的线程,…

    Java 2023年5月19日
    00
  • 详解Spring注解–@Autowired、@Resource和@Service

    当我们使用Spring框架进行开发时,注解是一个非常重要的概念。在Spring注解中,@Autowired、@Resource和@Service是三个最常用的注解。 @Autowired注解 @Autowired注解是Spring内置的一个注解,实现自动依赖注入。该注解可以标注在构造器、方法、参数和属性上。当Spring容器扫描到@Autowired注解时,…

    Java 2023年5月31日
    00
  • 如何解决Spring in action @valid验证不生效的问题

    如何解决Spring in action @valid验证不生效的问题 在Spring中使用@Valid注解可以轻松实现参数校验,但是有时候我们会遇到@Valid校验不生效的问题,接下来我将分享如何解决这个问题的完整攻略。 1. 确认是否添加了校验器依赖 在使用@Valid注解校验参数之前,需要确保我们在项目中添加了校验器依赖。常用的校验器依赖是Hibern…

    Java 2023年5月20日
    00
  • Spring Boot Cache使用方法整合代码实例

    下面我将详细讲解“Spring Boot Cache使用方法整合代码实例”的完整攻略。 一、什么是Spring Boot Cache Spring Boot Cache是Spring Boot中的缓存框架,它提供了一种简单的方式来缓存数据的读取结果,从而减少不必要的计算并提升应用程序的性能。 二、Spring Boot Cache使用方法 1. 引入依赖 在…

    Java 2023年5月31日
    00
  • Java实现统计字符串出现的次数

    下面来详细讲解Java实现统计字符串出现次数的完整攻略。 1. 获取待统计的字符串和要统计的字符 首先需要从用户那里获取到待统计的字符串和要统计的字符,可以使用Scanner类进行输入。示例代码如下: Scanner sc = new Scanner(System.in); System.out.println("请输入待统计的字符串:"…

    Java 2023年5月27日
    00
  • Java实现视频时间维度剪切的工具类

    首先我们需要明确需求,即实现视频的时间维度剪切。时间维度剪切是什么呢?简单来说就是截取视频中某一时间段的内容,生成一个新的视频文件。下面是Java实现视频时间维度剪切的完整攻略: 1. 导入依赖库和相关类 为了实现视频时间维度剪切,我们需要用到一些依赖库和相关类。这里我们推荐使用FFmpeg,它是一个开源的多媒体框架,支持各种格式的音频和视频,可以在Java…

    Java 2023年5月20日
    00
  • javaweb前端向后端传值的几种方式总结(附代码)

    以下是对“javaweb前端向后端传值的几种方式总结(附代码)”的详细讲解攻略。 前言 在Web开发中,前端页面需要向后端服务器传递数据以完成后续逻辑的处理,而后端需要获取前端传递的数据进行处理并返回相应的结果。在这个过程中,前后端数据传递是非常重要的,因此准确地传递和获取数据是保证Web应用程序正常运行的基础。接下来,我们将介绍JavaWeb前端向后端传值…

    Java 2023年6月15日
    00
  • Spring+SpringMVC+Hibernate项目环境搭建的步骤(图文)

    以下是关于“Spring+SpringMVC+Hibernate项目环境搭建的步骤(图文)”的完整攻略,其中包含两个示例。 Spring+SpringMVC+Hibernate项目环境搭建的步骤(图文) Spring+SpringMVC+Hibernate是一种常用的Java Web开发框架组合。在本文中,我们将讲解如何搭建一个Spring+SpringMV…

    Java 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部