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日

相关文章

  • Spring Boot 入门教程

    SpringBoot入门教程 SpringBoot是一个快速开发、轻量级、微服务框架,它简化了Spring应用的开发过程,提供了自动化配置、可插拔的组件和简化的XML配置等特点,使得SpringBoot成为当前企业级Java应用开发的主流框架之一。本教程旨在帮助读者从入门到掌握SpringBoot,实现快速且高效的应用开发。 环境搭建 在开始使用Spring…

    Java 2023年5月15日
    00
  • 关于CSS自定义属性与前端页面的主题切换问题

    下面我来详细讲解关于CSS自定义属性与前端页面的主题切换问题的完整攻略。 什么是CSS自定义属性? CSS自定义属性(CSS Custom Properties)是CSS3新增的一项功能,它可以让我们在CSS中定义自己的属性,然后在其他地方使用它们。 要使用CSS自定义属性,首先需要使用–作为前缀定义一个属性名称,接着可以为该属性设置一个默认值,例如: :…

    Java 2023年6月15日
    00
  • IDEA Java win10环境配置的图文教程

    让我详细讲解如何配置 IDEA Java 环境。 环境准备 首先需要准备以下两个软件:1. JDK,可前往 Oracle 官网下载对应版本;2. IDEA,可前往官网下载最新版本。 安装JDK 下载对应版本的JDK,并进行安装; 配置 JDK 环境变量,以 Windows 10 为例,具体步骤如下: 搜索“环境变量”并进入系统属性 -> 高级 -&gt…

    Java 2023年5月19日
    00
  • JSP在Linux下的安装

    以下是JSP在Linux下的安装攻略,基于Ubuntu 18.04系统,其他Linux系统可能存在细微差异。 安装Java 前往Oracle官网下载Java SE Development Kit(JDK),下载地址为:https://www.oracle.com/java/technologies/javase-downloads.html 下载完成后,将下…

    Java 2023年6月15日
    00
  • Java异常处理UncaughtExceptionHandler使用实例代码详解

    下面我将详细讲解“Java异常处理UncaughtExceptionHandler使用实例代码详解”的攻略,分为以下几个部分: 1. 什么是UncaughtExceptionHandler Java中的异常会在程序运行时抛出,如果我们没有对这些异常进行处理,就会导致程序崩溃或者无法正常运行。为了解决这个问题,我们可以使用Java的UncaughtExcept…

    Java 2023年5月28日
    00
  • MyBatis 详细讲解动态 SQL的使用

    MyBatis 详细讲解动态 SQL的使用 MyBatis是一个支持动态SQL的持久层框架,可以使用简单的XML或注解进行配置。动态SQL是指能够在运行时根据不同条件生成不同SQL语句的能力。这种能力使我们能够构建出非常灵活的SQL语句,从而更好地满足项目需求。在本文中,我们将学习如何使用MyBatis的动态SQL。 1. if 标签 if 标签用来在满足一…

    Java 2023年5月20日
    00
  • javaWeb自定义标签用法实例详解

    JavaWeb自定义标签是JavaWeb开发中的一个重要组成部分,它可以方便开发人员以面向对象的方式来实现页面元素的复用和封装,加速开发效率,减少代码重复。 下面给出一个完整的JavaWeb自定义标签的攻略,包含以下内容: 1. 什么是JavaWeb自定义标签 JavaWeb自定义标签是一种特殊的JSP元素,它可以自定义页面标签,可以通过自定义标签来实现前端…

    Java 2023年6月15日
    00
  • 教你如何用Eclipse创建一个Maven项目

    我将为你详细讲解“教你如何用Eclipse创建一个Maven项目”的完整攻略,过程中将涵盖以下内容: 安装Eclipse和Maven 创建Maven项目 添加依赖 编译运行 以下是具体步骤: 1. 安装Eclipse和Maven 首先,你需要安装Eclipse和Maven。你可以从官方网站下载Eclipse,也可以通过Eclipse Marketplace搜…

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