当前位置: 首页 > 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新特性日期工具类的梳理到此结束,欢迎大家补充说明😉。

相关文章:

Java日期工具类LocalDateTime

Java日期工具类LocalDateTime 嘚吧嘚LocalDateTime - API创建时间获取年月日时分秒增加时间减少时间替换时间日期比较 嘚吧嘚 压轴的来了&#xff0c;个人感觉LocalDateTime是使用频率最高的工具类&#xff0c;所以本篇像文章详细研究说明一下&#x1f9d0;。 如果看了Java日期…...

从C到C++1

一.思想过渡 前言&#xff1a;明确地说&#xff0c;学了C语言就相当于学了 C 的一半&#xff0c;从C语言转向 C 时&#xff0c;不需要再从头开始&#xff0c;接着C语言往下学就可以&#xff0c;所以我强烈建议先学C语言再学 C。 1.面向过程与面向对象 ​ 从“学院派”的角度来…...

[Angular] 笔记 18:Angular Router

Angular Router 视频 chatgpt&#xff1a; Angular 具有内置的大量工具、功能和库&#xff0c;功能强大且经过良好设计&#xff0c;如组件化架构、依赖注入、模块化系统、路由和HTTP客户端等。这些功能可以直接用于项目中&#xff0c;无需额外的设置或第三方库。这简化了开发流…...

微服务全链路灰度方案介绍

目录 一、单体架构下的服务发布 1.1 蓝绿发布 二、微服务架构下的服务发布 三、微服务场景下服务发布的问题 四、全链路灰度解决方案 4.1 物理环境隔离 4.2 逻辑环境隔离 4.3 全链路灰度方案实现技术 4.3.1 标签路由 4.3.2 节点打标 4.3.3 流量染色 4.3.4 分布式链路…...

低代码开发OA系统 低代码平台如何搭建OA办公系统

随着企业业务的复杂化和信息化的推进&#xff0c;如何快速、高效地构建一个适应企业发展需求的OA系统成为许多企业关注的焦点。本文将介绍低代码开发在构建OA系统方面的优势&#xff0c;并以白码低代码平台为例&#xff0c;探讨其在实际应用中的价值和功能。 什么是低代码开发?…...

构建Python的Windows整合包教程

构建Python的Windows整合包教程 原文链接&#xff1a;https://blog.gcc.ac.cn/post/2023/buildpythonwindowsintegrationpackagetutorial/ 构建Python的Windows整合包教程 - 我的博客原文链接 前言 之前的开源项目本地素材搜索有很多人想要Windows整合包&#xff0c;因为Wi…...

《整机柜服务器通用规范》由OCTC正式发布!浪潮信息牵头编制

近日&#xff0c;中国电子工业标准化技术协会开放计算标准工作委员会&#xff08;OCTC&#xff09;正式批准发布了《整机柜服务器通用规范》&#xff0c;该标准由浪潮信息牵头&#xff0c;中国工商银行、中国质量认证中心、英特尔、中国计量科学研究院等十余家单位联合编制&…...

Linux:修改和删除已有变量

变量修改 变量的修改有以下几种方式: 变量设置方式说明${变量名#匹配字串}从头向后开始匹配&#xff0c;删除符合匹配字串的最短数据${变量名##匹配字串}从头向后开始匹配&#xff0c;删除符合匹配字串的最长数据${变量名%匹配字串}从尾向前开始匹配&#xff0c;删除符合匹配…...

【23.12.29期--Spring篇】Spring的 IOC 介绍

介绍一下Spring的IOC ✔️引言✔️ lOC的优点✔️Spring的IOC✔️ 拓展知识仓✔️IOC是如何实现的&#xff1f; ✔️引言 所谓的IOC (inversion of control) &#xff0c;就是控制反转的意思。何为控制反转? 在传统的程序设计中&#xff0c;应用程序代码通常控制着对象的创建和…...

【Python排序算法系列】—— 选择排序

​ &#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 选择排序 过程演示&#xff1a; 选择排序实现代码&#xff1a; 分析选择排序&#xff1a…...

会议室占用时间段 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 现有若干个会议,所有会议共享一个会议室,用数组表示各个会议的开始时间和结束时间, 格式为: [[会议1开始时间,会议1结束时间],[会议2开始时间,会议2结束时间]] 请计算会议室占用时间段。 输入描述 [[会议1开始时间,…...

计算机网络复习5

传输层——端到端 文章目录 传输层——端到端功能传输层的寻址与端口UDPTCPTCP连接管理TCP可靠传输TCP流量控制TCP拥塞控制网络拥塞的处理 功能 从通信和信息处理的角度看&#xff0c;传输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同…...

React Hooks 面试题 | 05.精选React Hooks面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

2024收入最高的编程语言

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 1.Python Python 是最流行、用途最广泛的语言之一。它通常用于网络开发、数据科学、机器学习等。 以下是 Python 编程语言的一些主要用途&#xff1a; Web 开发&…...

Android笔记(二十三):Paging3分页加载库结合Compose的实现分层数据源访问

在Android笔记&#xff08;二十二&#xff09;&#xff1a;Paging3分页加载库结合Compose的实现网络单一数据源访问一文中&#xff0c;实现了单一数据源的访问。在实际运行中&#xff0c;往往希望不是单纯地访问网络数据&#xff0c;更希望将访问的网络数据保存到移动终端的SQL…...

Python实现马赛克图片处理

文章目录 读取图片代码1、导入使用包2、读取图片 操作图片1、上下翻转2、左右翻转3、颜色颠倒4、降低图片精度5、打马赛克 说明&#xff1a; 在python中&#xff0c;图片可以看成一个三维的矩阵&#xff0c;第一维控制着垂直方向&#xff0c;第二维控制着水平方向&#xff0c;第…...

你能描述下你对vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?

一、生命周期是什么 生命周期&#xff08;Life Cycle&#xff09;的概念应用很广泛&#xff0c;特别是在政治、经济、环境、技术、社会等诸多领域经常出现&#xff0c;其基本涵义可以通俗地理解为“从摇篮到坟墓”&#xff08;Cradle-to-Grave&#xff09;的整个过程在Vue中实…...

【经典算法】有趣的算法之---蚁群算法梳理

every blog every motto: You can do more than you think. 0. 前言 蚁群算法记录 1. 简介 蚁群算法(Ant Clony Optimization, ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性…...

第八届视觉、图像与信号处理国际会议(ICVISP 2024) | Ei, Scopus双检索

会议简介 Brief Introduction 2024年第八届视觉、图像与信号处理国际会议(ICVISP 2024) 会议时间&#xff1a;2024年12月27日-29日 召开地点&#xff1a;中国西双版纳 大会官网&#xff1a;ICVISP 2024-2024 8th International Conference on Vision, Image and Signal Process…...

《HelloGitHub》第 93 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、Java、Go、C/C、Swift...让你在短时间内…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...