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

Instant,LocalDate,LocalTime,LocalDateTime和ZonedDateTime

Instant

封装了从 1970-01-01T00:00:00Z 开始的秒数,相当于时间戳。
主要有两个属性:

private final long seconds;  
private final int nanos;

LocalDate

用于表示日期,包括年、月、日,例如 2017-12-03。
主要有三个属性:

private final int year;  
private final short month;  
private final short day;

LocalTime

用于表示时间,包括时、分、秒,例如 10:15:30。
主要有四个属性:

private final byte hour;  
private final byte minute;  
private final byte second;  
private final int nano;  //纳秒

LocalDateTime

符合 ISO-8601 时间表示标准,用于表示日期和时间,包括年、月、日、时、分、秒,例如 2007-12-03T10:15:30。
localdatetime 不包含时区信息。
localdatetime 只有两个属性:

private final LocalDate date;  //日期
private final LocalTime time;  //时间

ZonedDateTime

包含日期、时间、时区信息,例如 2007-12-03T10:15:30+01:00 Europe/Paris
主要有三个属性:

private final LocalDateTime dateTime;  //时间
private final ZoneOffset offset;  //相对于UTC的偏移量
private final ZoneId zone; //时区

关联

纳秒
Instant
LocalTime
LocalDate
LocalDateTime
ZonedDateTime
时区
时区偏移量

Instant,LocalDate,LocalTime,LocalDateTime 和 ZonedDateTime 共同的特征是,都是不可变和线程安全的。

共同方法

now()

获取当前时间。

LocalDateTime localDateTime = LocalDateTime.now();  //2023-10-29T15:18:15.186459200
LocalDate localDate = LocalDate.now(); //2023-10-29

of()

根据属性创建实例。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  //2023-10-28T00:00

from()

从 temporal 创建实例。

parse()

解析字符串创建实例。

LocalDateTime parse = LocalDateTime.parse("2023-10-29T12:00:00"); //2023-10-29T12:00

get()

获取指定属性的数据,例如分钟。

with()

对日期时间进行调整,并返回调整后日期时间的副本。
主要存在两个方法,一个是 with(TemporalAdjuster adjuster),通过调整器进行调整。底层调用的是 with(TemporalField field, long newValue) 方法。

LocalDateTime with = localDateTime  .with(Month.NOVEMBER)  //先调整为11月.with(TemporalAdjusters.lastDayOfMonth()); //再调整为月底,结果为 2023-11-30T00:00

二是 with(TemporalField field, long newValue),通过将属性(年、月、日等)设置为新的值。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  
LocalDateTime with = localDateTime.with(ChronoField.MONTH_OF_YEAR, Month.NOVEMBER.getValue()); //将月设置为11月,结果为2023-11-28T00:00

plus()

将日期时间加上指定值,并返回添加后的副本。
主要存在两种方法,一是 plus(TemporalAmount amountToAdd),参数通常为实现 TemporalAmount 接口的 DurationPeriod,分别代表一段时间和一段日期。底层调用的是 plus(long amountToAdd, TemporalUnit unit) 方法。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  
LocalDateTime plus = localDateTime.plus(Period.ofYears(1));  //将日期加上1年,结果为2024-10-28T00:00

二是 plus(long amountToAdd, TemporalUnit unit),通过将属性直接加上指定值。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  
LocalDateTime plus = localDateTime.plus(1, ChronoUnit.YEARS); //将日期加上1年,结果为2024-10-28T00:00

minus()

将日期时间减去指定值,底层调用的是 plus(long amountToAdd, TemporalUnit unit)。只是将 amountToAdd 改成了负数。

until()

long until(Temporal endExclusive, TemporalUnit unit),endExclusive 为结束时间。
计算两个日期时间之间在某个属性方面的差值。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  
LocalDateTime localDateTime2=LocalDateTime.of(2023,11,28,0,0);  
long until = localDateTime.until(localDateTime2, ChronoUnit.MONTHS); //两个时间相差了1个月
long days = localDateTime.until(localDateTime2, ChronoUnit.DAYS); //也等同于相差了31天

format()

对代码进行格式化。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  
DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");  
String format = localDateTime.format(dateTimeFormatter);  //结果为2023-10-28

isAfter()

判断当前时间是否晚于指定时间。

LocalDateTime localDateTime=LocalDateTime.of(2023,10,28,0,0);  
LocalDateTime localDateTime2=LocalDateTime.of(2023,11,28,0,0);  
boolean after = localDateTime.isAfter(localDateTime2);  //false
boolean after1 = localDateTime2.isAfter(localDateTime);  //true

isBefore()

判断当前时间是否早于指定时间。

isEqual()

判断当前时间是否与指定时间相等。

相互转换

toLocalDateTime()
toLocalDate()
toLocalTime()
toEpochSecond()
toInstant()
toLocalDate()
toLocalTime()
atZone(ZoneId)
toEpochSecond(ZoneOffset)
toInstant(ZoneOffset)
atTime()
toEpochSecond(LocalTime, ZoneOffset)
atDate(LocalDate)
toEpochSecond(LocalDate, ZoneOffset)
atZone(ZoneId)
toEpochMilli()/1000
ZonedDateTime
LocalDateTime
LocalDate
LocalTime
时间戳
Instant

能看到转换方法主要以 to,at 为前缀,并且 LocalDate,LocalTime,LocalDateTime 需要先转换为 ZonedDateTime 再转换为时间戳。

相关文章:

Instant,LocalDate,LocalTime,LocalDateTime和ZonedDateTime

Instant 封装了从 1970-01-01T00:00:00Z 开始的秒数,相当于时间戳。 主要有两个属性: private final long seconds; private final int nanos;LocalDate 用于表示日期,包括年、月、日,例如 2017-12-03。 主要有三个属性&…...

Web入门笔记

Web入门笔记 HTTP协议 超文本传输协议 规定了浏览器和服务器之间数据传输的规则,请问数据和响应数据的格式 基于TCP请求-响应模式一次请求对应一次响应无状态的协议 请问数据格式 浏览器版本:解决浏览器兼容问题。GET请求体:存放请求参数…...

Linux网络编程二(TCP三次握手、四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

TCP三次握手 TCP三次握手(TCP three-way handshake)是TCP协议建立可靠连接的过程,确保客户端和服务器之间可以进行可靠的通信。下面是TCP三次握手的详细过程: 假设客户端为A,服务器为B 1、第一次握手(SYN1,seq500&…...

C#核心笔记——(一)C#和.NET Framework

C#是一种通用的,类型安全的面向对象编程语言。其目标是提高程序员生产力。 一.面向对象 C#实现了丰富的面向对象范式,包括封装、继承、多态。 C#面向对象特性包括: 统一的类型系统 类与接口 属性、方法、事件 C#支持纯函数模式 二、类型安…...

【2023年冬季】华为OD统一考试(B卷)题库清单(已收录345题),又快又全的 B 卷题库大整理

目录 专栏导读华为OD机试算法题太多了,知识点繁杂,如何刷题更有效率呢? 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、滑动窗口5、二叉树6、并查集7、栈 三、算法1、基础算法① 贪心算法② 二分查找③ 分治递归…...

云服务器的先驱,亚马逊云科技海外云服务器领军者

随着第三次工业革命的发展,移动互联网技术带来的信息技术革命为我们的生活带来了极大的便捷。其中,不少优秀的云服务器产品发挥了不可低估的作用,你或许听说过亚马逊云科技、谷歌GCP、IBM Cloud等优秀的海外云服务器。那么云服务器有哪些&…...

QT webengine显示HTML简单示例

文章目录 参考示例1TestWebenqine.promainwindow.hmainwindow.cppmain.cpp效果 示例2 (使用setDevToolsPage函数)main.cpp效果 参考 QT webengine显示HTML简单示例 示例1 编译器 : Desktop Qt 5.15.2 MSVC2019 64bit编辑器: QtCreator代码: TestWebenqine.pro # TestWeben…...

Spark_SQL函数定义(定义UDF函数、使用窗口函数)

一、UDF函数定义 (1)函数定义 (2)Spark支持定义函数 (3)定义UDF函数 (4)定义返回Array类型的UDF (5)定义返回字典类型的UDF 二、窗口函数 (1&…...

【Leetcode】【每日一题】【中等】274. H 指数

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/h-index/description/?envTyped…...

MySQL读写分离技术及实现方案

MySQL读写分离技术及实现方案 本文主要介绍了MySQL读写分离技术的原理、实现方案以及示例。通过使用读写分离技术,可以提高数据库的性能,降低服务器的压力。 一、MySQL读写分离技术简介 读写分离是指将数据库的读操作和写操作分别分配到不同的服务器上…...

git 推送到github远程仓库细节处理(全网最良心)

我查看了很多网上的教程都不是很好 我们先在github创建一个仓库,且初始化 readme 我们到本地文件初始化仓库 添加远程仓库 这时候我们就 git add . , git commit ,再准备git push 的时候 显示没有指定远程的分支 我们按照提示操作 提示我们要先git pull 提示我…...

算法训练|数据流中的中位数

LCR 160. 数据流中的中位数 - 力扣(LeetCode) 总结:这题自己最开始的想法是直接使用vector容器,每次取中位数的时候就进行一次排序,超时。题解很巧妙的利用大根堆和小根堆来解决问题,大根堆和小根堆各存一…...

LeetCode 2558. 从数量最多的堆取走礼物【模拟,堆或原地堆化】简单

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

windows服务器环境下使用php调用com组件

Office设置 安装 office2013 且通过正版激活码激活 在组件服务 计算机 我的电脑 DOM 中找到 Microsoft Word 97 - 2003 文档 服务,右键属性 身份验证调整为 无 在 标识中 调整为 交互式用户 php环境设置 开启com组件扩展 在php.ini中设置 extensionphp_com_dotn…...

3DCAT+东风日产:共建线上个性化订车实时云渲染方案

近年来,随着5G网络和云计算技术的不断发展,交互式3D实时云看车正在成为一种新的看车方式。 与传统的到4S店实地考察不同,消费者可以足不出户,通过网络与终端设备即可实现全方位展示、自选汽车配色、模拟效果、快捷选车并进行个性…...

【VR开发】【Unity】【VRTK】1-无代码VRVR开发介绍

本篇开始精简讲解VRTK相关的知识。 VRTK是基于Unity的一套提供无代码VR开发的插件,这套插件开源,可商用,集合了目前可能的VR体验组件,可以让不会C#编程但想要开发VR体验的人在不写一行代码的前提下开发出心仪的VR作品。 这套组件问世后也很受欢迎,目前已经进化到了第四代…...

全国地级市最新城投债数据(2006-2023.2)

地级市-城投债数据是关于各地级市发行的城市投资建设项目资金债券的统计数据。这些数据对于研究者来说有着一定的参考价值。首先,地级市-城投债数据能够提供全国各地级市城投债发行的数量和规模情况,帮助研究者了解城市基础设施建设和经济发展的情况。其…...

vm_flutter

附件地址 https://buuoj.cn/match/matches/195/challenges#vm_flutter 可以在buu下载到。 flutter我也不会,只是这个题目加密算法全部在java层,其实就是一个异或和相加。 反编译 package k;import java.util.Stack;/* loaded from: classes.dex */ pu…...

MySQL数据库#6

Python操作mysql 在使用Python连接mysql之前我们需要先下载一个第三方的模块 pymysql的模块,导入后再进行操作。 操作步骤:1. 先连接mysql host,port,charset,username password 库,等等。 import pymysql…...

YOLO v1(2016.5)

文章目录 AbstractIntroduction过去方法存在的问题我们提出的方法解决了... Unified DetectionNetwork DesignTrainingInference Comparison to Other Detection SystemsDeformable parts modelsR-CNNOther Fast DetectorsDeep MultiBoxOverFeatMultiGrasp ExperimentsConclusi…...

别再傻傻只用insmod了!Linux驱动加载,用modprobe才是真省心(附依赖问题解决全流程)

别再傻傻只用insmod了!Linux驱动加载,用modprobe才是真省心(附依赖问题解决全流程) 你是否曾在深夜调试Linux驱动时,被insmod报出的"Unknown symbol"错误折磨到崩溃?明明已经编译好了驱动模块&am…...

LERF技术解析:基于NeRF与CLIP的3D场景语言查询与语义分割

1. 项目概述:当NeRF遇见自然语言最近在三维重建和生成领域,一个名为LERF(Language Embedded Radiance Fields)的技术组合引起了不小的关注。简单来说,它做了一件听起来很科幻的事:你给一段文字描述&#xf…...

Autosar Crypto Driver配置避坑指南:从CryptoPrimitive到CryptoKeyType,手把手教你配出安全又高效的加密服务

AUTOSAR Crypto Driver实战配置:从算法选型到密钥管理的安全工程实践 在汽车电子系统开发中,加密服务已成为保障车载通信安全的核心组件。AUTOSAR标准定义的Crypto Driver模块为开发者提供了统一的加密接口,但实际配置过程中,工程…...

别再死记硬背了!用Unity可视化工具一步步拆解A*寻路算法(附完整C#源码)

用Unity可视化工具玩转A*寻路算法:从理论到实战的沉浸式学习 在游戏开发的世界里,路径规划算法就像是一位隐形的向导,决定着NPC如何绕过障碍物找到玩家,或是战略游戏中单位如何选择最优行军路线。A*算法作为其中最耀眼的明星&…...

2026最权威一键生成论文工具榜单:这些被高校和导师偷偷推荐的软件你用了吗

一键生成论文工具正在重塑学术写作的效率与质量。随着AI技术的不断突破,越来越多高校、导师及科研机构开始关注并推荐这些高效、合规的智能写作助手。依托权威检测平台数据、多所高校实测反馈及用户真实评价,本文将为您揭晓2026年最值得信赖的一键生成论…...

几十万买的数字孪生低代码平台集体落灰?被隐瞒的落地真相,终于说透了

在政企数字化采购圈子里,一直有个特别讽刺、且年年重复上演的现象。很多企业、政府单位,手握专项数字化预算,毫不犹豫花几十万重金购入数字孪生、3D可视化低代码平台。采购前被厂商的宣传话术打动:零代码拖拽、人人上手、无需专业…...

HarmonyOS ,你所不知道的事件发布/订阅的通信机制-EventEmitter

在鸿蒙(HarmonyOS)开发中,EventEmitter 是一种用于事件发布/订阅的通信机制,常用于组件、Ability、线程或模块之间的解耦通信。它允许一个对象(发布者)发出事件,而其他对象(订阅者&a…...

fastapi · FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 本文整理自 GitHub,经重新整理编辑。 FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fas…...

实战测试10款降AIGC平台:只选真正管用的那一款!

随着AI写作工具的普及,越来越多的学生和职场人士开始依赖它们来提升论文写作和内容创作的效率。然而,随着各大高校、期刊和平台对AIGC内容的检测越来越严格,原本便捷的工具却成了隐患。很多用户发现,自己精心撰写的内容被系统标记…...

双榜第一!文心5.1登顶中文创意写作综合实力评测

【大力财经】5月18日,全球权威ICT领域市场研究机构Omdia发布《2026 年基础模型中文创意写作能力评估》报告,围绕中文创意写作七大核心维度,对 DeepSeek V4、文心5.1(ERNIE 5.1)、GPT 5.5 等 8大国内外主流顶级文本模型…...