当前位置: 首页 > 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…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

2025季度云服务器排行榜

在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...

对象回调初步研究

_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...