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虚拟机中的22个重难点(推荐0

    作为程序员必须掌握的Java虚拟机中的22个重难点攻略 Java虚拟机(JVM)是Java语言的核心,作为程序员必须深入了解JVM的原理和机制。本攻略介绍了JVM中的22个重难点,帮助程序员深入了解JVM并掌握JVM原理和调优技巧。 1. JVM 总论 JVM是Java的运行环境,它主要由类加载器、运行时数据区、执行引擎、本地接口、本地方法库和垃圾回收器组成…

    Java 2023年5月23日
    00
  • 详解使用Spring3 实现用户登录以及权限认证

    在Spring中,我们可以使用Spring Security框架来实现用户登录和权限认证。Spring Security是一个基于Spring的安全框架,它提供了一系列的安全服务,包括认证、授权、攻击防护等。本文将详细讲解如何使用Spring Security实现用户登录和权限认证。 1. 添加Spring Security依赖 首先,我们需要在项目中添加S…

    Java 2023年5月18日
    00
  • java开发之闹钟的实现代码

    下面是“Java开发之闹钟的实现代码”完整攻略: 一、准备工作 确定闹钟的功能需求,如:设定时间,响铃提示等; 选定合适的Java开发IDE,如Eclipse或IntelliJ IDEA; 确定使用的Java版本,本项目中使用Java 8。 二、项目搭建 新建Java项目,并创建一个Clock类; 创建一个定时器Timer,并设定定时任务,如下: timer…

    Java 2023年5月19日
    00
  • Java实现超级实用的日记本

    Java实现超级实用的日记本 介绍 在这份攻略中,我们将详细讲解如何使用Java实现一个超级实用的日记本。这个日记本可以帮助用户记录自己每天的生活、工作情况,同时还可以进行文本的编辑、保存、读取等操作。我们将以Java Swing为界面框架,使用文件io技术将数据保存在本地。 环境 JDK 1.8 或以上 Eclipse IDE 项目结构 我们将创建一个Ja…

    Java 2023年5月18日
    00
  • Win2003平台上jsp虚拟主机环境的架设(IIS6+J2SDK+resin)

    这里提供Win2003平台上jsp虚拟主机环境的架设攻略,该环境采用IIS6+J2SDK+Resin,具体步骤如下: 准备工作 下载并安装J2SDK(Java SE Development Kit) 下载Resin,并解压到指定目录下。 下载并安装IIS6。 安装Resin 进入Resin解压后的主目录,找到bin目录。 右键点击resin.exe,选择“以…

    Java 2023年6月15日
    00
  • spring scheduled单线程和多线程使用过程中的大坑

    介绍 在使用Spring框架的Scheduled定时任务功能时,我们可以通过配置ThreadPoolTaskExecutor来实现多线程执行定时任务。但是在使用过程中,可能会遇到一些坑,比如在多线程执行过程中,由于任务执行的时间过长,而ThreadPoolTaskExecutor线程池中可用线程数量过少,可能造成任务阻塞,从而导致已经执行的任务无法被及时释放…

    Java 2023年5月19日
    00
  • 记录一个使用Spring Data JPA设置默认值的问题

    下面是详细的讲解过程: 1. 背景 在使用Spring Data JPA进行开发中,我们可能会遇到需要给某个字段设置默认值的情况,但很多人可能不知道如何实现。本文将介绍如何使用Spring Data JPA设置默认值,并提供两个示例。 2. 解决方案 Spring Data JPA提供了多种设置默认值的方式,包括使用实体类构造方法、使用@PrePersist…

    Java 2023年6月1日
    00
  • 12种最常用的网页编程语言简介(值得收藏)

    首先,我们需要了解网页编程语言的概念和作用。网页编程语言指的是网站开发者使用的语言,用于构建网站的前端和后端部分。网页编程语言可以分成前端语言和后端语言两种。前端语言用于网站的外观和用户交互,后端语言用于网站的数据处理和服务器与数据库等操作。本文将介绍12种最常用的网页编程语言,分别为HTML、CSS、JavaScript、PHP、Python、Ruby、J…

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