LocalDateTime详解

一、LocalDateTime基础介绍

LocalDateTime是Java 8中新引入的时间日期类,描述的是不带时区的日期时间,以年、月、日、时、分、秒、纳秒的形式存储时间,也可以进行计算、格式化和解析。LocalDateTime类是一个不可变的对象,不可变是指它的值一旦确定就无法更改。

    LocalDateTime now = LocalDateTime.now();   // 获取当前时间
    LocalDateTime specificDate = LocalDateTime.of(2022, Month.JANUARY, 1, 10, 10, 30);   // 指定日期时间
    LocalDateTime dateTimeFromInstant = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());   // 从Instant中获取日期时间

可以通过常用的方法构建LocalDateTime对象,如now()获取当前时间,of()指定日期时间,ofInstant()从一个Instant对象中获取日期时间等。

二、LocalDateTime的常用方法

1. add()和minus()

add()方法可以将指定的时间段加到当前的LocalDateTime对象上,minus()方法可以将指定的时间段减去当前的LocalDateTime对象,这两个方法都会返回一个新的LocalDateTime对象。

    // 原时间为2020-04-21 13:30:45
    LocalDateTime newDateTime1 = now.plusDays(1);   // 增加一天,2020-04-22 13:30:45 
    LocalDateTime newDateTime2 = now.minusHours(5);   // 减去5小时,2020-04-21 08:30:45 

2. with()

with()方法可以指定LocalDateTime对象的某个字段,返回一个新的LocalDateTime对象。

    LocalDateTime newDateTime = now.withYear(2022).withMonth(2).withDayOfMonth(2);   // 将年月日都设置为2022-02-02

3. get()

get()方法可以获取LocalDateTime对象的某个字段的值,比如获取年、月等。

    int year = specificDate.getYear();   // 获取年份
    Month month = specificDate.getMonth();   // 获取月份
    int day = specificDate.getDayOfMonth();   // 获取日期
    int hour = specificDate.getHour();   // 获取小时
    int minute = specificDate.getMinute();   // 获取分钟
    int second = specificDate.getSecond();   // 获取秒
    int nano = specificDate.getNano();   // 获取纳秒

4. isBefore()和isAfter()

isBefore()和isAfter()方法用于比较两个LocalDateTime对象的大小关系。

    boolean isBefore = now.isBefore(specificDate);   // 判断now是否在specificDate之前
    boolean isAfter = now.isAfter(specificDate);   // 判断now是否在specificDate之后

5. format()

format()方法用于将LocalDateTime对象格式化成字符串。

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");   // 定义格式化器
    String formattedDateTime = now.format(formatter);   // 格式化成字符串
    System.out.println(formattedDateTime);   // 输出:2020-04-21 13:30:45

三、总结

LocalDateTime是Java 8中的一个重要时间日期类,支持日期时间的创建、计算、格式化和解析等功能。它不受时区的影响,适合于处理不涉及时区的时间日期计算和处理场景。

原创文章,作者:LTAFC,如若转载,请注明出处:https://www.506064.com/n/334574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
LTAFCLTAFC
上一篇 2025-02-05 13:05
下一篇 2025-02-05 13:05

相关推荐

  • 使用LocalDateTime创建时间

    LocalDateTime是Java 8新引入的日期时间类,它提供了更加方便和可读性强的方法来创建和处理日期时间,本文将围绕LocalDateTime创建时间来介绍其使用方法。 一…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25

发表回复

登录后才能评论