当前位置: 首页 > news >正文

LocalDateTime类

文章目录

  • 一、LocalDateTime构造
    • 1.1 获取当前时间
    • 1.2 ‌指定时间创建
    • 1.3 解析字符串
  • 二、获取当前日期的年月日
    • 2.1 获取当前日期的年份
    • 2.2 获取当前日期的月份
    • 2.3 获取当前月的第几天
    • 2.4 获取当前日期为当前年的第几天
    • 2.5 获取当前日期为星期几
    • 2.6 获取小时
    • 2.7 获取分钟
    • 2.8 获取秒
  • 三、日期运算
    • 3.1 增加减少天数
    • 3.2 增加减少月份
    • 3.3 增加减少年份
    • 3.4 其他一些增减方法
  • 四、日期比较
    • 4.1 比较两个日期是否相等
    • 4.2 判断一个日期是否为一个日期之后
    • 4.3 判断一个日期是否为另一个日期之前

一、LocalDateTime构造

Java 中的 LocalDateTime 是 JDK8 引入的日期时间类,用于表示不带时区信息的日期时间(年月日时分秒),具有线程安全、不可变等特性‌

localdatetime类也是存在构造函数的,点击跳转到类中可发现,该类的构造方法如下:

在这里插入图片描述
可以看到该类的构造方式是由private修饰的,因此该类只能在localdatatime类当中访问,而不能在外部类中使用new实例化构造。

示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = new LocalDateTime(); //也就是这种语法是错误的
    }

那么该如何进行实例化进行使用呢?下面就需要学习到以下内容

1.1 获取当前时间

在这里插入图片描述

在LocalDateTime中提供了这样一个方法now,获取当前的时间。now有三种重载方法,小编选一个常用的方法进行讲解:

在这里插入图片描述

now方法是静态方法,因此可以直接使用LocalDateTime点now方法直接使用,该方法返回值是LocalDateTime类,一直点击可以看到最后返回的是一个实例类。
在这里插入图片描述

示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
    }

在这里插入图片描述
使用该方法可以获取当前时间的时间,上面代码运行得到今天日期和运行时间。

1.2 ‌指定时间创建

在这里插入图片描述

LocalDateTime类中除了获取当前时间的方法,也提供了创建指定时间的of方法,of方法存在很多重构方法,小编在这里讲一个常用的。

public static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second) 

of方法也是一个静态方法,属于LocalDateTime这个类的,因此可以使用类名+点+方法进行调用,不仅如此of方法的返回值也是一个LocalDateTime类的,因此它的返回值也是可以使用LocalDateTime类当中的方法。of方法有六个参数分别是:年,月,日,时,分、秒。这里可以指定放入自己想要设置的时间,其实该方法在之前很多节目、软件上也有案例:例如发红包活动,我要设置一个具体的时间进行发红包,那么就可以使用该方法进行设置。具体使用如下:
示例代码段

 public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.of(2024,3,21,12,00,00);
        System.out.println(localDateTime);
    }

在这里插入图片描述
此时LocalDateTime存储的就是指定的时间。

1.3 解析字符串

在这里插入图片描述
》LocalDateTime还提供了第三种构造时间的方法,parse(怕大家不会读,给大家找来读音),存在两种重载方法。
在这里插入图片描述
LocalDateTime.parse 默认支持 ‌ISO-8601 格式‌(如 2025-03-31T15:30:45)的字符串转换‌,ISO-8601 是国际标准化组织定义的日期时间表示格式,核心形式为 yyyy-MM-ddTHH:mm:ss.SSSZ,日期时间分隔符‌:使用 T 分隔日期和时间(如 2025-03-31T15:30:45)‌。yyyy-MM-dd HH:mm:ss 大小写需要注意。所以可以如下使用:

示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.parse("2024-03-21T12:00:00");
        System.out.println(localDateTime);
    }

在这里插入图片描述
如果输入格式不对则会报错
在这里插入图片描述
那么如果想要自己的格式来写入,那么就得使用若字符串格式与 ISO 不完全匹配(如使用空格代替 T 或含自定义精度),需通过 DateTimeFormatter 定义模板‌。并且使用parse的另外一种重载方法。

示例代码段

 public static void main(String[] args) {
        String s = "2025/04/01 12:00:00";
        DateTimeFormatter dateTimeFormatter  = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.parse(s,dateTimeFormatter);
        System.out.println(localDateTime);
    }

这里使用自己定义的格式,当然不能随便使用格式,小编建议可以使用 / 代替 - ,空格代替H,但是不能随便调换,具体各位读者可以自己尝试。


二、获取当前日期的年月日

2.1 获取当前日期的年份

在这里插入图片描述
示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int year = localDateTime.getYear();
        System.out.println(year);
    }

在这里插入图片描述
使用getYear方法获取当前日期的年,如上面代码,当前日期为2025年,那么使用getYear方法则获取到了2025年。

2.2 获取当前日期的月份

  1. 方法1:获取的是当前月份,但是返回的是枚举类型值,对应的为月份的英文==
    在这里插入图片描述

示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        Month month = localDateTime.getMonth();
        System.out.println(month);
    }

在这里插入图片描述

  1. 方法2:获取的是当前月份,但是返回的是int类型
    在这里插入图片描述

示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int month = localDateTime.getMonthValue();
        System.out.println(month);
    }

在这里插入图片描述

2.3 获取当前月的第几天

在这里插入图片描述

示例代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int day = localDateTime.getDayOfMonth();
        System.out.println(day);
    }

在这里插入图片描述

2.4 获取当前日期为当前年的第几天

在这里插入图片描述

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int day = localDateTime.getDayOfYear();
        System.out.println(day);
    }

在这里插入图片描述
运行结果为2025年的第91天。

2.5 获取当前日期为星期几

在这里插入图片描述

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
        System.out.println(dayOfWeek);
    }

在这里插入图片描述
运行结果表示2025年4月1日为星期二。

  1. 获取日期的阿拉伯数字形式
 public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int dayOfWeek = localDateTime.getDayOfWeek().getValue();
        System.out.println(dayOfWeek);
    }

在这里插入图片描述

2.6 获取小时

在这里插入图片描述

 public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int hour = localDateTime.getHour();
        System.out.println(hour);
    }

在这里插入图片描述

2.7 获取分钟

在这里插入图片描述

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int minute = localDateTime.getMinute();
        System.out.println(minute);
    }

在这里插入图片描述

2.8 获取秒

在这里插入图片描述

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        int second = localDateTime.getSecond();
        System.out.println(second);
    }

在这里插入图片描述


三、日期运算

3.1 增加减少天数

  1. 增加天数

在这里插入图片描述

增加一天

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        System.out.println(localDateTime.plusDays(1));
    }

在这里插入图片描述

  1. 减少天数
    在这里插入图片描述
    减少一天
public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        System.out.println(localDateTime.minusDays(1));
    }

在这里插入图片描述

  1. 增加天数函数和减少天数函数其实是可以互相换用的,因为传递参数可以为负数,那么增加负一天则为减少一天。

3.2 增加减少月份

  1. 增加月份
    在这里插入图片描述

增加一月

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        System.out.println(localDateTime.plusMonths(1));
    }

在这里插入图片描述

  1. 减少月份
    在这里插入图片描述

减少一月

 public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        System.out.println(localDateTime.minusMonths(1));
    }

在这里插入图片描述

  1. 同增加减少日期天数一样,月份的增加和减少也可以相互转换。增加负一个月等于减少一个月。

3.3 增加减少年份

  1. 增加年
    在这里插入图片描述
    增加一年
public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        System.out.println(localDateTime.plusYears(1));
    }

在这里插入图片描述

  1. 减少年
    在这里插入图片描述

减少一年

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
        System.out.println(localDateTime.minusYears(1));
    }

在这里插入图片描述

3.4 其他一些增减方法

增加减少一周
在这里插入图片描述
在这里插入图片描述

增加减少小时
在这里插入图片描述
在这里插入图片描述


四、日期比较

4.1 比较两个日期是否相等

在这里插入图片描述
代码段1

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.parse("2024-03-21T12:00:00");
        LocalDateTime localDateTime2 = LocalDateTime.parse("2024-03-21T12:00:00");
        System.out.println(localDateTime.equals(localDateTime2));
    }

在这里插入图片描述
在这里两个时间相同,则返回true。

代码段2
在这里插入图片描述

在这里一个是3月21日一个是4月1日,两个日期不同则返回false。

4.2 判断一个日期是否为一个日期之后

在这里插入图片描述
代码段讲解

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.parse("2024-03-21T12:00:00");
        LocalDateTime localDateTime2 = LocalDateTime.parse("2024-04-01T12:00:00");
        System.out.println("localDateTime比localDateTime2晚:" + localDateTime.isAfter(localDateTime2));
        System.out.println("localDateTime2比localDateTime晚:" + localDateTime2.isAfter(localDateTime));
    }

在这里2024年3月21日比2024年的4月1日之前还要早,所以运行第一个打印,则是false,运行第二个打印则是true。

在这里插入图片描述

4.3 判断一个日期是否为另一个日期之前

在这里插入图片描述
代码段

public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.parse("2024-03-21T12:00:00");
        LocalDateTime localDateTime2 = LocalDateTime.parse("2024-04-01T12:00:00");
        System.out.println("localDateTime比localDateTime2早:" + localDateTime.isBefore(localDateTime2));
        System.out.println("localDateTime2比localDateTime早:" + localDateTime2.isBefore(localDateTime));
    }

在这里2024年3月21日比2024年的4月1日之前还要早,所以运行第一个打印,则是true,运行第二个打印则是flase。
在这里插入图片描述

相关文章:

  • 光压发电机的设计(转子部分)
  • 《网络管理》实践环节03:snmp服务器上对网络设备和服务器进行初步监控
  • Java项目之基于ssm的课程在线教学平台(源码+文档)
  • Retinex 算法 + MATLAB 软件,高效率完成图像去雾处理
  • 2021年ASOC SCI1区:自适应差分进化算EaDE,深度解析+性能实测
  • 【免费革命】GPT-4o图像生成全开放!OpenAI颠覆创作门槛,设计师惊呼“饭碗被抢”​
  • STM32CubeMX的使用方法:使用STM32CubeMX生成基于STM32F103+HLA库的初始化代码,并在此基础上写出LED点灯程序
  • Redis相关知识
  • photoshop安装教程(附安装包)photoshop详细图文安装教程包含下载、安装、使用
  • 2025年辽宁食品安全管理员考试练习题库
  • hackmyvn-casino
  • .NET 通过Junction Folder实现权限维持
  • 进程间信号
  • 项目6——前后端互通的点餐项目
  • 详解Maven的主要生命周期
  • 安装windows server 2016没有可选硬盘,设备安装过ubuntu系统
  • vue3使用v-md-editor完成Markdown内容展示
  • 正则表达式核心语法 + Python的 re 库中常用方法
  • 二分答案-P8647 [蓝桥杯 2017 省 AB] 分巧克力
  • iCare Format Recovery:轻量级数据恢复工具
  • 哪些网站做批发衣服/福州网站排名
  • 合肥餐饮网站建设/seo是什么意思为什么要做seo
  • 国家开发银行网站/关键字是什么意思
  • 上海小微企业名录查询/seo优化师
  • 网站结构是什么 怎么做/360手机优化大师安卓版
  • 网站建设找哪家好/怎么快速优化网站