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

LocalDate 类常用方法详解(日期时间类)

LocalDate 类常用方法详解

        LocalDate 是 Java 8 引入的日期时间API中的一个类,用于表示不含时间和时区的日期(年、月、日)。以下是一些常用的 LocalDate 方法:

创建 LocalDate 实例

now():获取当前日期

LocalDate today = LocalDate.now();
System.out.println("当前日期: " + today); // 输出当前日期,如2023-10-01

of():通过年、月、日创建日期

LocalDate specificDate = LocalDate.of(2023, 12, 25);
System.out.println("指定日期: " + specificDate); // 输出2023-12-25

parse():从字符串解析出日期

LocalDate parsedDate = LocalDate.parse("2023-07-04");
System.out.println("解析后的日期: " + parsedDate); // 输出2023-07-04

日期加减

plusDays()plusWeeks()plusMonths()plusYears():增加天数、周数、月份、年份

LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plusWeeks(1);
System.out.println("一周后的日期: " + nextWeek);

minusDays()minusWeeks()minusMonths()minusYears():减少天数、周数、月份、年份

LocalDate today = LocalDate.now();
LocalDate lastYear = today.minusYears(1);
System.out.println("去年的今天: " + lastYear);

判断日期属性

isLeapYear():判断是否为闰年

LocalDate date = LocalDate.of(2023, 2, 28);
boolean isLeapYear = date.isLeapYear();
System.out.println("是否闰年: " + isLeapYear);

isBefore()isAfter():判断日期是否在另一日期之前或之后

boolean isBefore = date.isBefore(LocalDate.now());
System.out.println("是否在当前日期之前: " + isBefore);

获取日期组件

getYear()getMonthValue()getDayOfMonth():获取年、月、日

LocalDate date = LocalDate.of(2023, 3, 16);
int year = date.getYear();
int month = date.getMonthValue();
int dayOfMonth = date.getDayOfMonth();
System.out.println("年份: " + year);
System.out.println("月份: " + month);
System.out.println("日: " + dayOfMonth);

getMonth()getDayOfWeek():获取月份和星期

Month month = date.getMonth();
DayOfWeek dayOfWeek = date.getDayOfWeek();
System.out.println("月份: " + month);
System.out.println("星期: " + dayOfWeek);

格式化输出

使用 DateTimeFormatter 进行日期的格式化输出

LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = date.format(formatter);
System.out.println("格式化后的日期: " + formattedDate);

代码案例

以下是一些 LocalDate 类的代码案例

获取当前年份

LocalDate today = LocalDate.now();
int year = today.getYear();
System.out.println("当前年份: " + year);

计算两个日期之间的天数

LocalDate startDate = LocalDate.of(2023, 1, 1);
LocalDate endDate = LocalDate.of(2023, 12, 31);
long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
System.out.println("两个日期之间的天数: " + daysBetween);

判断日期是否在特定范围内

LocalDate dateToCheck = LocalDate.of(2023, 6, 15);
boolean isWithinRange = !dateToCheck.isBefore(LocalDate.of(2023, 1, 1)) && !dateToCheck.isAfter(LocalDate.of(2023, 12, 31));
System.out.println("日期是否在范围内: " + isWithinRange);

前后端的数据交互

        在前后端的数据交互中,LocalDate 类型的数据通常以字符串的形式传递。后端(如Java)接收到字符串后,可以使用 LocalDate.parse() 方法将其解析为 LocalDate 对象。前端(如JavaScript)需要将日期转换为符合ISO 8601标准的格式(即 YYYY-MM-DD,2023-07-04),然后作为字符串发送到后端。

        以下是前端如何传递 LocalDate 类型数据给后端的步骤:

前端(JavaScript)

  1. 获取日期: 使用JavaScript的 Date 对象获取当前日期或指定日期。

  2. 转换日期格式: 将 Date 对象转换为 YYYY-MM-DD 格式的字符串。

  3. 发送数据: 通过AJAX请求(如使用 fetchXMLHttpRequest)将日期字符串发送到后端。

// 假设我们有一个日期对象
const date = new Date();// 转换为 ISO 字符串 YYYY-MM-DD
const isoDateString = date.toISOString().split('T')[0];// 使用fetch发送数据到后端
fetch('/your-endpoint', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({localDate: isoDateString})
})
.then(response => response.json())
.then(data => console.log(data))
.catch((error) => console.error('Error:', error));

后端(Java)

  1. 接收字符串: 后端接收到前端发送的日期字符串。

  2. 解析字符串: 使用 LocalDate.parse() 方法将字符串解析为 LocalDate 对象。

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDate;
import java.time.format.DateTimeParseException;@RestController
public class DateController {@PostMapping("/your-endpoint")public String handleDate(@RequestParam("localDate") String localDateString) {try {// 将字符串解析为LocalDate对象LocalDate localDate = LocalDate.parse(localDateString);return "Received date: " + localDate.toString();} catch (DateTimeParseException e) {return "Invalid date format. Please use YYYY-MM-DD.";}}
}

注意事项

  • 确保前后端约定的日期格式一致,通常是ISO 8601标准(YYYY-MM-DD)。
  • 前端在发送数据时,需要确保日期格式正确,并且后端能够正确解析。
  • 后端在解析日期时,应该处理可能的异常,如格式不正确的情况。

相关文章:

LocalDate 类常用方法详解(日期时间类)

LocalDate 类常用方法详解 LocalDate 是 Java 8 引入的日期时间API中的一个类,用于表示不含时间和时区的日期(年、月、日)。以下是一些常用的 LocalDate 方法: 创建 LocalDate 实例 now():获取当前日期 LocalDate t…...

kmp desktop实现excel预览

先将excel转paf https://blog.csdn.net/qq_42761569/article/details/121699594 package utilimport com.aspose.cells.License import com.aspose.cells.PdfSaveOptions import com.aspose.cells.Workbook import com.geolo.desktop.common.utils.LogUtils import java.io.Fi…...

OB_GINS_day3

这里写目录标题 实现当前状态初始化实现预积分的初始化由于此时preintegration_options 是3(也就是考虑odo以及earth rotation)为预积分的容器添加需要积分的IMU积分因子接下来是添加新的IMU到preintegration中 实现当前状态初始化 这个state_curr的主要…...

【Python3】【力扣题】405. 数字转换为十六进制数

【力扣题】题目描述: 题意理解:(不允许使用库函数) 数字等于0,则结果为0, 数字小于0,则补码运算,即最高位(32位)为1,其余全部取反,再加…...

记录一次企业外部通过ssh 连接数据库的事DBeaver

情况大概是这样,公司算法供应商开通了连接某个服务器A的权限,但是数据库x是在另一台服务器B上。 直接通过外部连接数据库是不行的,需要借用服务器A来进行访问x 使用软件:DBeaver, 数据库x类型:oracle 需要的信息&am…...

中聚企服:中聚AI女娲大模型,企业难题迎刃而解!

在这个瞬息万变的商业世界里,企业面临的挑战愈发复杂多样。小到日常文书和规章制度,大到工商财税和知识产权保护,每一个环节都至关重要。为了帮助中小企业在激烈的市场竞争中脱颖而出,中聚企服在官方小程序重磅上线了一款革命性产…...

对镜像精简

dive工具,用来优化镜像大小 ENV命令合并 ENV DEBUG_PORT8777 \HTTP_PORT12080 \PROGRAM_FILE_HOME_UPORTAL_CONF/home/zenap/uportal/confWORKDIR usr/src/app,会切换到这个目录 使用COPY --chown 修改属主,不要使用RUN chown 容器内非root…...

老电脑不能装纯净版windows

手上有一台2016年的老笔记本电脑,用了8年,基本上能换的都换了一遍,散热风扇换了,键盘换了,屏幕换了,扬声器也换了,内存也换大了,甚至都换过固态硬盘,但是CPU没法换&#…...

在Python中实现一个简单的社交媒体应用

在Python中实现一个简单的社交媒体应用 社交媒体应用是现代互联网的重要组成部分,允许用户分享信息、交流和互动。在这篇博文中,我们将使用Python构建一个简单的社交媒体应用,涵盖用户注册、发布动态、评论和查看动态等基本功能。我们将使用Flask框架作为后端,SQLite作为数…...

pytest高版本兼容test_data[“log“] = _handle_ansi(“\n“.join(logs))错误

一、问题现象: 执行seleniumpytest结束时报: INTERNALERROR> File "D:\workspace\pytestframe\.venv\Lib\site-packages\pytest_html\report_data.py", line 141, in add_test INTERNALERROR> test_data["log"] _handle_ansi(&q…...

Redis技术入门与实践指南

一、Redis基础知识 1、概念 Redis是一个开源的、遵循BSD协议的、基于内存的而且目前比较流行的键值数据库(key-value database),是一个非关系型数据库,redis 提供将内存通过网络远程共享的一种服务,提供类似功能的 还有memcached&#xff0…...

如何一键完成20个Oracle实例运维脚本部署

在日常的运维工作中,常常是一个人需要管理维护数个数十个数据库实例,如果是开源类集群如mysql,PG等可能更多;在没有商业的集中管理平台的情况下,如何快速的部署监控或者运维脚本,是一个值得探讨的问题&…...

【C++刷题】力扣-#598-区间加法 II

题目描述 给你一个 m x n 的矩阵 M和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] [ai, bi] 意味着当所有的 0 < x < ai 和 0 < y < bi 时&#xff0c; M[x][y] 应该加 1。 在 执行完所有操作后 &#xff0c;计算并返回 矩阵中最大整数的个数 。 示…...

优雅的LUA数据记录方法-serpent序列化+LUA Table

目录 简述如何集成&#xff1f;如何使用序列化 反序列化 参考 简述 项目里需要使用LUA脚本将数据记录到文件&#xff0c;要方便的增加、查找、删除&#xff0c;要方便的加载与存回。 使用序列化/反序列化 lua table可以很容易实现这些功能。 序列化将table转换为字符串 反序列…...

初始JavaEE篇——多线程(4):wait、notify,饿汉模式,懒汉模式,指令重排序

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 wait、notify 方法 多线程练习 单例模式 饿汉模式 懒汉模式 指令重排序 wait、notify 方法 wait 和 我们前面学习的sleep…...

Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)

0x01 产品简介 Apache Solr是一个开源的搜索平台,基于流行的Apache Lucene库构建。它提供了一个强大的全文搜索功能,能够快速处理大量数据,并支持复杂的搜索操作。并且是一个独立的企业级搜索应用服务器,它采用Java开发,并基于Apache Lucene实现。Solr提供了类似于Web-Se…...

C#整合Ollama实现本地LLMs调用

前言 近两年AIGC发展的非常迅速&#xff0c;从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型&#xff0c;再到后来的小参数模型&#xff0c;从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化&#xff0c;还有模型的使用方式。…...

C++基于opencv的视频质量检测--图像抖动检测

文章目录 0.引言1. 原始代码分析2. 优化方案3. 优化后的代码4. 代码详细解读 0.引言 视频质量图像抖动检测已在C基于opencv4的视频质量检测中有所介绍&#xff0c;本文将详细介绍其优化版本。 1. 原始代码分析 首先&#xff0c;我们来看图像抖动检测的原始代码&#xff1a; …...

Cuda By Example - 11 (Texture Memory 2-D)

跟1D一样&#xff0c;2D的代码也没有运行过。旧的方法看看就好。 声明二维Texture texture<float, 2> texConstSrc; texture<float, 2> texIn; texture<float, 2> texOut; 访问二维Texture 使用2D的Texture的便利性体现在blend_kernel函数里。不再需要通…...

Go匿名结构体使用场景

1. 定义 在 Go 语言中&#xff0c;匿名结构体&#xff08;Anonymous Struct&#xff09;是一种没有显式命名的结构体类型。你可以直接在代码中定义并使用匿名结构体&#xff0c;而不需要为其定义一个单独的类型名称。匿名结构体通常用于临时数据结构或一次性使用的场景。 匿名…...

OpenClaw飞书机器人配置:Qwen3-4B模型对话触发实战

OpenClaw飞书机器人配置&#xff1a;Qwen3-4B模型对话触发实战 1. 为什么选择OpenClaw飞书本地模型组合 去年我接手了一个小团队的内部效率优化项目&#xff0c;需要解决两个核心痛点&#xff1a;一是团队成员频繁在飞书群聊中重复处理相似问题&#xff08;比如数据查询、文档…...

北京做网站SEO优化有什么技巧_北京做网站关键词优化需要多长时间

北京做网站SEO优化有什么技巧 在北京这样一个竞争激烈的市场&#xff0c;做网站SEO优化显得尤为重要。SEO&#xff08;Search Engine Optimization&#xff0c;搜索引擎优化&#xff09;是提升网站在搜索引擎结果中排名的关键手段&#xff0c;而北京的市场竞争尤其激烈&#x…...

Docker容器共享内存完全指南:从基础概念到实战调优

Docker容器共享内存完全指南&#xff1a;从基础概念到实战调优 在分布式计算和高性能应用场景中&#xff0c;共享内存&#xff08;Shared Memory&#xff09;作为进程间通信&#xff08;IPC&#xff09;最高效的方式之一&#xff0c;其重要性不言而喻。而当我们将应用迁移到Doc…...

聊城本地企业获客服务商推荐与测评(2026版)

2026年&#xff0c;随着 豆包、文心一言 等生成式AI工具的普及&#xff0c;企业获客方式正在发生根本性变化&#xff1a;用户不再依赖传统搜索引擎&#xff0c;而是直接通过AI获取推荐结果。对于聊城本地企业而言&#xff0c;无论是机械制造、农产品加工&#xff0c;还是本地生…...

Qt网络聊天室实战:如何优雅地实现聊天列表动态加载与滚动优化?

Qt网络聊天室实战&#xff1a;高性能聊天列表的架构设计与优化实践 1. 现代聊天界面的性能挑战与设计哲学 在即时通讯应用开发中&#xff0c;聊天列表的性能表现直接影响用户体验。当列表项超过100条时&#xff0c;传统实现方式往往会出现明显的滚动卡顿、内存占用飙升等问题。…...

Tauri Android 打包原理与实战指南

Tauri Android 打包原理与实战指南 基于 JoyaLand 项目的实际打包经验整理,记录原理、流程与踩坑解决方案。 一、Tauri Android 打包架构原理 1.1 整体架构 ┌─────────────────────────────────────────────┐ │ …...

C++的std--ranges编译器内联

C的std::ranges编译器内联&#xff1a;现代C的高效编程利器 随着C20标准的发布&#xff0c;std::ranges库的引入彻底改变了算法与数据结构的交互方式。这一特性不仅简化了代码编写&#xff0c;还通过编译器的内联优化显著提升了运行时性能。对于追求高效与简洁的开发者而言&am…...

学习javaday2

数据类型转换不能对布尔值进行转换不能把对象类型转换为不相干的类型在把高容量转换到低容量时&#xff0c;强制类型转换转换的时候肯存在内存溢出&#xff0c;或者精度问题public class Demo06 {public static void main(String[] args){//操作比较大的数的时候&#xff0c;注…...

OpenClaw模型微调:优化千问3.5-35B-A3B-FP8在特定任务的表现

OpenClaw模型微调&#xff1a;优化千问3.5-35B-A3B-FP8在特定任务的表现 1. 为什么需要微调千问模型&#xff1f; 当我第一次尝试用OpenClaw自动化处理财务报告时&#xff0c;发现千问3.5-35B-A3B-FP8虽然能理解基本指令&#xff0c;但在处理表格数据提取和金额计算时频繁出错…...

STM32大棚花卉物联网护养系统设计与实现

1. 项目概述这个大棚花卉护养系统是我去年为一个花卉种植基地设计的物联网解决方案。当时客户反映传统人工管理方式效率低下&#xff0c;经常出现浇水不及时、温度控制不精准等问题。经过三个月的开发和调试&#xff0c;这套系统成功将花卉产量提升了30%&#xff0c;同时减少了…...