LocalDate和LocalDateTime类

        在Java 8中引入的LocalDate表示一个格式为yyyy-MM-dd的日期,如2024-06-13。它不存储时间或时区。我们可以从LocalDate中获取许多其他的日期字段,如年日(day-of-year)、周日(day-of-week)、月日(month-of-year)等等。

1 初始化

   LocalDate以年月日的格式输出,即yyyy-MM-dd。我们可以使用LocalDate的下列静态方法来初始化LocalDate。

1.1 now() 当前时间

        给出LocalDate实例,该实例包含默认时区的系统时钟的当前日期。

    public static void main(String[] args) {//获取当前日期LocalDate localDate = LocalDate.now();System.out.println(localDate);LocalDateTime localDateTime = LocalDateTime.now();System.out.println(localDateTime);}

        其他重载方法:

  • now(Clock clock): 提供LocalDate实例,该实例具有从指定时钟获得的当前日期。
  • now(ZoneId zone): 给出当前日期的LocalDate实例,该日期来自指定时区的系统时钟。

1.2 of() 指定时间

    public static void main(String[] args) {//获取指定的日期 参数是年,月,日LocalDate localDate = LocalDate.of(2024,1,1);System.out.println(localDate);//获取当前日期时间 参数是年,月,日,时,分,秒LocalDateTime localDateTime = LocalDateTime.of(2024,1,1,1,1,1);System.out.println(localDateTime);}

1.3 ofYearDay() 指定时间

public static void main(String[] args) {//获取指定的日期 参数是年 指定年中的第几天LocalDate localDate = LocalDate.ofYearDay(2024,100);System.out.println(localDate);// LocalDateTime 不存在ofYearDay方法// LocalDateTime localDateTime = LocalDateTime.ofYearDay(2024,100);// System.out.println(localDateTime);}

1.4 parse() 从日期字符串中获取对象

    public static void main(String[] args) {// 从日期字符串中获取LocalDate,注意需要添加时间格式,否则会报错LocalDate localDate = LocalDate.parse("2024-10-01");System.out.println(localDate);// 从日期字符串中获取LocalDateTime,注意需要添加时间格式,否则会报错LocalDateTime localDateTime = LocalDateTime.parse("2024-10-01T12:12:12");System.out.println(localDateTime);// 从日期字符串中获取LocalDateTime,指定日期字符串格式localDateTime = LocalDateTime.parse("2024-10-01 12:12:12", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));System.out.println(localDateTime);}

2 获取时间

2.1 基础获取时间

    public static void main(String[] args) {LocalDate localDate = LocalDate.now();System.out.println("年:" + localDate.getYear());System.out.println("月:" + localDate.getMonthValue());System.out.println("年日:" + localDate.getDayOfYear());System.out.println("月日:" + localDate.getDayOfMonth());System.out.println("星期(英文):" + localDate.getDayOfWeek());System.out.println("星期(数字):" + localDate.getDayOfWeek().getValue());LocalDateTime localDateTime = LocalDateTime.now();System.out.println("时:" + localDateTime.getHour());System.out.println("分:" + localDateTime.getMinute());System.out.println("秒:" + localDateTime.getSecond());}

 2.2 TemporalAdjusters 时间调节器

public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();System.out.println("=======================月调节============================");LocalDateTime firstDayOfMonth = now.with(TemporalAdjusters.firstDayOfMonth());System.out.println("获取月中的第一天时间:" + firstDayOfMonth);LocalDateTime lastDayOfMonth = now.with(TemporalAdjusters.lastDayOfMonth());System.out.println("获取月中的最后一天时间:" + lastDayOfMonth);LocalDateTime firstDayOfNextMonth = now.with(TemporalAdjusters.firstDayOfNextMonth());System.out.println("获取下个月的第一天时间:" + firstDayOfNextMonth);System.out.println("=======================年调节============================");LocalDateTime firstDayOfYear = now.with(TemporalAdjusters.firstDayOfYear());System.out.println("获取年中的第一天时间:" + firstDayOfYear);LocalDateTime lastDayOfYear = now.with(TemporalAdjusters.lastDayOfYear());System.out.println("获取年中的最后一天时间:" + lastDayOfYear);LocalDateTime firstDayOfNextYear = now.with(TemporalAdjusters.firstDayOfNextYear());System.out.println("获取下一年的第一天时间:" + firstDayOfNextYear);System.out.println("=======================星期调节============================");LocalDateTime firstInMonth = now.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));System.out.println("获取本月第一个星期一的时间:" + firstInMonth);LocalDateTime lastInMonth = now.with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY));System.out.println("获取本月最后一个星期一的时间:" + lastInMonth);LocalDateTime next = now.with(TemporalAdjusters.next(DayOfWeek.MONDAY));System.out.println("获取本月下一个星期一的时间:" + next);LocalDateTime previous = now.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));System.out.println("获取本月上一个星期一的时间:" + previous);LocalDateTime nextOrSame = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY));System.out.println("获取本月下一个或当前星期一的时间:" + nextOrSame);LocalDateTime previousOrSame = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));System.out.println("获取本月上一个或当前星期一的时间:" + previousOrSame);}

3 时间运算

3.1 plus() 增加时间

    public static void main(String[] args) {// plus方法 增加时间如果超出,则会自动进位,例如:2020-12-31.plusMonths(1) = 2021-01-31LocalDate localDate = LocalDate.now();System.out.println("增加1年:" + localDate.plusYears(1));System.out.println("增加1月:" + localDate.plusMonths(1));System.out.println("增加1周:" + localDate.plusWeeks(1));System.out.println("增加1天:" + localDate.plusDays(1));LocalDateTime localDateTime = LocalDateTime.now();System.out.println("增加1小时:" + localDateTime.plusHours(1));System.out.println("增加1分钟:" + localDateTime.plusMinutes(1));System.out.println("增加1秒:" + localDateTime.plusSeconds(1));}

3.2 minus() 减少时间

public static void main(String[] args) {// minus方法 减少时间如果超出,会自动借位, 如:2020-01-01 减少一天,会变成2019-12-31LocalDate localDate = LocalDate.now();System.out.println("减少1年:" + localDate.minusYears(1));System.out.println("减少1月:" + localDate.minusMonths(1));System.out.println("减少1周:" + localDate.minusWeeks(1));System.out.println("减少1天:" + localDate.minusDays(1));LocalDateTime localDateTime = LocalDateTime.now();System.out.println("减少1小时:" + localDateTime.minusHours(1));System.out.println("减少1分钟:" + localDateTime.minusMinutes(1));System.out.println("减少1秒:" + localDateTime.minusSeconds(1));}

4 比较时间

    public static void main(String[] args) {LocalDate now = LocalDate.now();LocalDate localDate = LocalDate.of(2023, 1, 1);// 比较方法 -1 小于 0 等于 1 大于int i = now.compareTo(localDate);System.out.println("当前时间与指定时间比较:" + i);boolean after = now.isAfter(localDate);System.out.println("当前时间是否在指定时间之后:" + after);boolean before = now.isBefore(localDate);System.out.println("当前时间是否在指定时间之前:" + before);boolean equal = now.isEqual(localDate);System.out.println("当前时间是否等于指定时间:" + equal);}

5 字符串化

    public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();System.out.println("转字符串:" + now);System.out.println("年月日转字符串:" + now.toLocalDate());System.out.println("时分秒转字符串:" + now.toLocalTime());System.out.println("格式化时间:" + now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息安全工程师(82)操作系统安全概述

一、操作系统安全的概念 操作系统安全是指操作系统在基本功能的基础上增加了安全机制与措施,从而满足安全策略要求,具有相应的安全功能,并符合特定的安全标准。在一定约束条件下,操作系统安全能够抵御常见的网络安全威胁&#xff…

gitlab ci/cd搭建及使用笔记

记录下使用gitlab的ci/cd的devops构建过程中,一些易忘点或者踩坑点: 官方文档中英文(建议英文) https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html https://gitlab.cn/docs/jh/ci/pipelines/schedules.html为什么创建了…

SQL注入(SQL Injection)详解

SQL注入(SQL Injection)是一种代码注入技术,它通过在应用程序的输入字段中插入或“注入”恶意的SQL语句,从而操控后端数据库服务器执行非预期的命令。这种攻击方式常用于绕过应用程序的安全措施,未经授权地访问、修改或…

小程序源码-模版 100多套小程序(附源码)

一、搭建开发环境 搭建环境可以从这里开始: 微信小程序从零开始开发步骤(一)搭建开发环境 - 简书 二、程序示例 1、AppleMusic https://download.csdn.net/download/m0_54925305/89977187 2、仿B站首页 https://download.csdn.net/downlo…

安装baidubce库

直接pip install baidubce会带来一系列后续文件缺失问题,应该: pip install bce-python-sdk

【鉴权】提升 JWT 安全性的最佳实践:防范常见风险与应对策略

目录 引言一、JWT简介二、JWT的安全风险与防护措施2.1 签名算法不安全2.2 中间人攻击(MITM)2.3 重放攻击2.4 防止JWT泄露2.5 密钥管理与轮换2.6 验证JWT的来源和受众2.7 监控与审计 三、提高 JWT 安全性的关键措施3.1 选择安全的签名算法3.2 强制使用 HT…

Java实习面经系列(一)

1.自我介绍 2.问项目有关 了.线程池的理解 4.hashmap扩容,为什么扩两倍 5.jvm新生代老年代 6.垃圾回收算法 7.聚簇索引和非聚簇索引区别,b树,跳表,二叉树比较。哈希索引和b树的索引比较 8.存储引擎 9.回表是什么 10.MySQL语句查询…

【Java】-- 异常

1. 异常的概念与体系结构 1.1 异常的概念 在Java中,将程序执行过程中发生的不正常行为称为异常。 public class Test {public static void main(String[] args) {//算术(ArithmeticException)异常 // int a 5/0; // System.…

从零开始:利用Portainer CE和cpolar搭建NextCloud私有云存储

文章目录 前言1. 在PortainerCE中创建NextCloud容器2. 公网远程访问本地NextCloud容器2.1 内网穿透工具安装3.2 创建远程连接公网地址 3. 固定NextCloud私有云盘公网地址 前言 本文将介绍如何在本地利用Portainer CE的可视化界面创建NextCloud私有云盘容器,并通过c…

[安洵杯 2019]easy_web 详细题解

知识点: 编码转换 命令执行 linux空格_关键字绕过 打开页面 发现url 是 /index.php?imgTXpVek5UTTFNbVUzTURabE5qYz0&cmd 有img参数和cmd参数 cmd参数是没赋值的,随便赋值为123456 页面没有反应 鼠标移动到图片下面时发现有东西,当然直接查看页面源代码也可以发现 尝…

第2章 数据的表示和运算

王道学习 考纲内容 (一)数制与编码 进位计数制及其相互转换;定点数的编码表示 (二)运算方法和运算电路 基本运算部件:加法器;算术逻辑单元(ALU)…

Web3 游戏周报(11.03 - 11.09)

回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【11.03 - 11.09】Web3 游戏行业动态: Ton Accelerator 推出名为「Synergy」的 500 万美元计划,旨在推动跨链创新,创造 TON 用户与 EVM 网络适应…

CHS许可管理系统

在数字化时代,软件已成为企业运营的核心。为确保软件的合规使用,一个高效、智能的许可管理系统至关重要。CHS许可管理系统正是这样一款专为现代企业设计的软件合规管理解决方案,旨在帮助企业轻松应对软件许可管理的挑战。 一、智能许可管理&…

数据分析:16s差异分析DESeq2 | Corncob | MaAsLin2 | ALDEx2

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍DESeq2原理计算步骤结果Corncob原理计算步骤结果MaAsLin2原理计算步骤结果ALDEx2原理计算步骤结果加载R包数据链接数据预处理微生物数据样本信息提取物种名称过滤零值保留结果读取…

【Android】ubutun 创建Androidstudio桌面快捷方式

此方法不仅适合Androidstudio,其他应用的快捷方式创建同理。 创建桌面快捷方式 进入桌面 cd ~/Desktop创建.desktop文件 touch androidStudio.desktop编辑.desktop文件 [Desktop Entry] TypeApplication Terminalfalse NameAndroid Studio Comment android stu…

Apache POI 操作Word常用方法

系列文章目录 一、Java使用Apache POI导出excel 二、Apache POI 操作Excel常用方法 三、Apache poi 拆分单元格并赋值 四、使用easypoi模板方法导出excel 五、Apache poi给excel单元格添加下拉框或数据验证 六、Apache poi操作Word常用方法 文章目录 系列文章目录一、介绍二、…

你对安装在自己网站上的wordpress插件了解吗?

有不少用wordpress建站的人,喜欢用插件实现一些功能,使用插件是可以很方便的实现一些功能,但是,使用插件也会带来不少的问题。关于这个,这里就不讲了,网上可以搜索出一堆相关的内容来,这里只提出…

H.264/H.265播放器EasyPlayer.js无插件H5播放器关于WASM的压缩优化

在当今的Web开发领域,流媒体播放器的性能和效率至关重要,尤其是在处理大型视频文件和高分辨率视频流时。EasyPlayer.js RTSP播放器作为一款先进的流媒体播放器,它在WebAssembly(WASM)的压缩优化方面表现出色&#xff0…

使用 Python 从 REST URL 下载文件

使用 Python 从 REST URL 下载文件,可以使用 requests 库来简化文件的下载和保存过程。以下是一个示例代码,展示了如何从给定的 REST API 或 URL 下载文件并保存到本地。 1、问题背景 我们需要编写一个脚本,从一个支持 REST URL 的网站下载一…

EKS+EBS

下面我们介绍一下如何在EKS中实现动态、可扩展高效的存储 总共用到五个内容: 1、ebs卷:物理存储资源,充当底层存储基础 2、ebs csl驱动:桥梁,允许K8s管理ebs 3、PV和PVC: 通过匹配让Pod挂载所需的持久存储 4、Pod的挂载…