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

Java日期工具类LocalDateTime

Java日期工具类LocalDateTime

  • 嘚吧嘚
  • LocalDateTime - API
    • 创建时间
    • 获取年月日时分秒
    • 增加时间
    • 减少时间
    • 替换时间
    • 日期比较

嘚吧嘚

压轴的来了,个人感觉LocalDateTime是使用频率最高的工具类,所以本篇像文章详细研究说明一下🧐。
如果看了Java日期工具类LocalDate和Java时间工具类LocalTime👍,那么本篇文章就算是一个整合、进阶吧😎。

LocalDateTime - API

创建时间

函数声明描述
static LocalDateTime now()获取默认时区的当前日期时间
static LocalDateTime now(ZoneId zone)获取指定时区的当前日期时间
static LocalDateTime now(Clock clock)从指定时钟获取当前日期时间
static LocalDateTime of(LocalDate date, LocalTime time)根据日期和时间对象获取LocalDateTime对象
static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute, int second)根据指定的年、月、日、时、分、秒获取LocalDateTime实例

LocalDateTime now()

获取指定时区、时钟的日期时间就不多做说明了,和LocalDate一样。

// 获取当前时间
LocalDateTime now = LocalDateTime.now();
System.out.println("now : " + now);
// 格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(formatter);
System.out.println("nowStr : " + nowStr);

在这里插入图片描述
LocalDateTime of()
在这里插入图片描述

获取年月日时分秒

函数声明描述
int getYear()获取年份
Month getMonth()获取月份,返回值为月份的枚举
int getMonthValue()获取月份,返回值为int类型月份
DayOfWeek getDayOfWeek()获取日期是星期几
int getDayOfMonth()获取日期在该月是第几天
int getDayOfYear()获取日期在该年是第几天
int getHour()获取小时
int getMinute()获取分钟
int getSecond()获取秒钟
int getNano()获取纳秒
LocalDateTime now = LocalDateTime.now();
// 获取年
System.out.println("getYear : " + now.getYear());
// 获取月份
System.out.println("getMonth : " + now.getMonth());
System.out.println("getMonthValue : " + now.getMonthValue());
// 获取日
System.out.println("getDayOfWeek : " + now.getDayOfWeek());
System.out.println("getDayOfMonth : " + now.getDayOfMonth());
System.out.println("getDayOfYear : " + now.getDayOfYear());
// 获取小时
System.out.println("getHour : " + now.getHour());
// 获取分钟
System.out.println("getMinute : " + now.getMinute());
// 获取秒
System.out.println("getSecond : " + now.getSecond());
// 获取纳秒
System.out.println("getNano : " + now.getNano());

在这里插入图片描述

增加时间

虽然是增加时间,传参可为正数,也可为负数。传参为正数时增加,传参为负数时减少。

函数声明描述
LocalDateTime plusYears(long years)增加年
LocalDateTime plusMonths(long months)增加月份
LocalDateTime plusWeeks(long weeks)增加周
LocalDateTime plusDays(long days)增加日
LocalDateTime plusHours(long hours)增加小时
LocalDateTime plusMinutes(long minutes)增加分钟
LocalDateTime plusSeconds(long seconds)增加秒
LocalDateTime plusNanos(long nanos)增加纳秒

增加年、月、周、日

LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 修改年份
System.out.println("plusYears : " + now.plusYears(1));
System.out.println("plusYears : " + now.plusYears(-1));
// 修改月份
System.out.println("plusMonths : " + now.plusMonths(1));
System.out.println("plusMonths : " + now.plusMonths(-2));
// 修改周
System.out.println("getDayOfWeek : " + now.plusWeeks(1));
System.out.println("getDayOfWeek : " + now.plusWeeks(-2));
// 修改日
System.out.println("plusDays : " + now.plusDays(3));
System.out.println("plusDays : " + now.plusDays(-3));

在这里插入图片描述

增加时、分、秒、纳秒

        LocalDateTime now = LocalDateTime.now();System.out.println("now:" + now);// 修改小时System.out.println("plusHours : " + now.plusHours(2));System.out.println("plusHours : " + now.plusHours(-5));// 修改分钟System.out.println("plusMinutes : " + now.plusMinutes(20));System.out.println("plusMinutes : " + now.plusMinutes(-15));// 修改秒System.out.println("plusSeconds : " + now.plusSeconds(11));System.out.println("plusSeconds : " + now.plusSeconds(-31));// 修改纳秒System.out.println("plusNanos : " + now.plusNanos(53));System.out.println("plusNanos : " + now.plusNanos(-63));

在这里插入图片描述

减少时间

虽然是减少时间,传参可为正数,也可为负数。传参为正数时减少,传参为负数时增加。

函数声明描述
LocalDateTime minusYears(long years)减少年
LocalDateTime minusMonths(long months)减少月份
LocalDateTime minusWeeks(long weeks)减少周
LocalDateTime minusDays(long days)减少日
LocalDateTime minusHours(long hours)减少小时
LocalDateTime minusMinutes(long minutes)减少分钟
LocalDateTime minusSeconds(long seconds)减少秒
LocalDateTime minusNanos(long nanos)减少纳秒

减少其实也是调用的增加的方法
在这里插入图片描述
以减少年为例

LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 减少年
System.out.println("minusYears : " + now.minusYears(2));
System.out.println("minusYears : " + now.minusYears(-5));

在这里插入图片描述

替换时间

函数声明描述
LocalDateTime withYear(int year)替换年(-999999999-999999999)
LocalDateTime withMonth(int month)替换月份(1-12)
LocalDateTime withDayOfMonth(int dayOfMonth)替换为本月中的第几天(1-31)
LocalDateTime withDayOfYear(int dayOfYear)替换为本年中的第几天(1-366)
LocalDateTime withHour(int hour)替换小时(0-23)
LocalDateTime withMinute(int minute)替换分钟(0-59)
LocalDateTime withSecond(int second)替换秒(0-59)
LocalDateTime withNano(int nanoOfSecond)替换纳秒(0-999999999)
LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 替换年
System.out.println("withYear : " + now.withYear(1996));
// 替换月
System.out.println("withMonth : " + now.withMonth(5));
// 替换日
System.out.println("withDayOfMonth : " + now.withDayOfMonth(5));
System.out.println("withDayOfYear : " + now.withDayOfYear(5));
// 替换时
System.out.println("withHour : " + now.withHour(5));
// 替换分
System.out.println("withMinute : " + now.withMinute(5));
// 替换秒
System.out.println("withSecond : " + now.withSecond(5));
// 替换纳秒
System.out.println("withNano : " + now.withNano(5));

在这里插入图片描述

日期比较

函数声明描述
boolean isEqual(ChronoLocalDateTime<?> other)判断日期时间是否相等
boolean isAfter(ChronoLocalDateTime<?> other)检查是否在指定日期时间之前
boolean isBefore(ChronoLocalDateTime<?> other)检查是否在指定日期时间之后
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time1 = LocalDateTime.of(1999, 12, 5, 10, 12, 12);
LocalDateTime time2 = LocalDateTime.of(1999, 12, 6, 10, 12, 12);
String timeStr1 = time1.format(formatter);
String timeStr2 = time2.format(formatter);
System.out.println("time1 : " + timeStr1);
System.out.println("time2 : " + timeStr2);
System.out.println(timeStr1 + " = " + timeStr2 + " : " + time1.isEqual(time2));
System.out.println(timeStr1 + " > " + timeStr2 + " : " + time1.isAfter(time2));
System.out.println(timeStr1 + " < " + timeStr2 + " : " + time1.isBefore(time2));

在这里插入图片描述
Java8新特性日期工具类的梳理到此结束,欢迎大家补充说明😉。

http://www.lryc.cn/news/269570.html

相关文章:

  • 从C到C++1
  • [Angular] 笔记 18:Angular Router
  • 微服务全链路灰度方案介绍
  • 低代码开发OA系统 低代码平台如何搭建OA办公系统
  • 构建Python的Windows整合包教程
  • 《整机柜服务器通用规范》由OCTC正式发布!浪潮信息牵头编制
  • Linux:修改和删除已有变量
  • 【23.12.29期--Spring篇】Spring的 IOC 介绍
  • 【Python排序算法系列】—— 选择排序
  • 会议室占用时间段 - 华为OD统一考试
  • 计算机网络复习5
  • React Hooks 面试题 | 05.精选React Hooks面试题
  • 2024收入最高的编程语言
  • Android笔记(二十三):Paging3分页加载库结合Compose的实现分层数据源访问
  • Python实现马赛克图片处理
  • 你能描述下你对vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?
  • 【经典算法】有趣的算法之---蚁群算法梳理
  • 第八届视觉、图像与信号处理国际会议(ICVISP 2024) | Ei, Scopus双检索
  • 《HelloGitHub》第 93 期
  • JAVA B/S架构智慧工地源码,PC后台管理端、APP移动端
  • 【adb】--- win10 配置 adb环境 超详细 (持续更新中)
  • SQL注入安全漏洞详解
  • 数据结构与算法教程,数据结构C语言版教程!(第一部分、数据结构快速入门,数据结构基础详解)四
  • mac安装k8s环境
  • HarmonyOS4.0系列——04、@Styles、@Extend、@Extend事件以及多态样式stateStyles
  • C++项目之酒店客房管理系统架构——设计模式应用场景详解(下)
  • RabbitMQ消息存储JSON格式反序列化
  • Java解决统计有序矩阵中的负数问题
  • 【算法与数据结构】435、LeetCode无重叠区间
  • 【开题报告】基于SpringBoot的茶文化宣传网站设计与实现