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…

小程序源码-模版 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

【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 网络适应…

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

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

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 的网站下载一…

SpringMVC学习记录(三)之响应数据

SpringMVC学习记录(三)之响应数据 一、页面跳转控制1、快速返回模板视图2、转发和重定向 二、返回JSON数据1、前置准备2、ResponseBody 三、返回静态资源1、静态资源概念2、访问静态资源 /*** TODO: 一个controller的方法是控制层的一个处理器,我们称为h…

CSDN做样板,教我们如何为新网站引流

CSDN为我们做了个很好的例子,详细请看下图 亮点分析: 1. 未采用硬广在网站上进行引流。减少了给用户在直觉上的造成的反感; 2. 在GitHub的转跳页面中,植入额外的关联网站链接。虽然对用户解决问题没啥鸟用,但是人家能…

什么是头皮EA(剥头皮EA)?

在许多外汇交易者的眼中,剥头皮交易一直是一个神秘的存在。一部分人认为它是一种“外汇禁招”,而另一部分人则认为它比日内交易更容易盈利。那么,外汇剥头皮到底是什么?它与点差之间又有怎样的关系?本文将对剥头皮交易…

华为ensp防火墙配置(纯享版)

文章目录 前言一、拓扑结构二、配置步骤1.路由器配置(路由器代替互联网)2.server和pc配置3.防护墙配置4.测试 总结 前言 防火墙是生活和项目中不可或缺的一部分,本篇文章对华为的ensp防火墙配置做一个总结。在之前的dhcp配置中有软件的下载地…

区块链技术在数字版权管理中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 区块链技术在数字版权管理中的应用 区块链技术在数字版权管理中的应用 区块链技术在数字版权管理中的应用 引言 区块链技术概述 …

docker 拉取MySQL8.0镜像以及安装

目录 一、docker安装MySQL镜像 搜索images 拉取MySQL镜像 二、数据挂载 在/root/mysql/conf中创建 *.cnf 文件 创建容器,将数据,日志,配置文件映射到本机 检查MySQL是否启动成功: 三、DBeaver数据库连接 问题一、Public Key Retrieval is not allowed 问题…

VUE3中Element table表头动态展示合计信息(不是表尾合计)

一、背景 原型上需要对两个字段动态合计,输出摘要信息 原先想到是的Element的 :summary-method,发现不是动态,所以换监听来实现 二、vue代码 <el-table v-model="loading" :data="itemList"><el-table-column label="药品名称" pro…

让直播流量不再是“数字游戏”!本地生活+AI数字人的共赢方式 !

如今&#xff0c;数字化浪潮席卷全球&#xff0c;直播行业竞争愈发激烈。许多人都希望能够将自己直播间所产生的热度实时变现&#xff0c;但总是没有头绪或者是把握不住机会&#xff0c;就这样让直播流量从白白流失。即便是有人使用上创新型智能AI数字人系统&#xff0c;也少有…

jmeter常用配置元件介绍总结之前置处理器、测试片段

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之前置处理器、测试片段 6.前置处理器6.1用户参数6.2取样器超时6.3.测试片段6.4JSR223 PreProcessor6.5.JDBC PreProcessor 6.前置处理器 在取样器请求之前执行的操作&#xff0c;优先级比取样器高&#xff0c;用来处理一些…