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

进阶JAVA篇- ZoneId 类与 ZoneDateTime 类、Instant类的常用API(七)

目录

API        

        1.0 ZoneId 类的说明

        1.1 如何创建 ZoneId 类的对象呢?

        1.2 ZoneId 类中的 getAvailableZoneIds() 静态方法

        2.0 ZoneDateTime 类的说明

        2.1 如何创建 ZoneDateTime 类的对象呢?

        3.0 Instant 类的说明

        3.1 如何创建 Instant 类的对象呢?

         3.2 如何获取其他时区的时间戳?

        3.3 Instant 类中的 getEpochSecond() 实例方法

        3.4 Instant 类中的 getNano() 实例方法

        3.5 Instant 类中的 equals()、isBefore()、isAfter() 实例方法


API        

        1.0 ZoneId 类的说明

        ZoneId 类是 Java 8 中引入的一个类,用于表示时区的标识符。它是一个不可变的类,可以用于创建时区对象、获取时区信息、转换时区等操作。

        1.1 如何创建 ZoneId 类的对象呢?

        可以通过 systemDefault() 静态方法来获取当前系统默认的时区,也可以通过 of(String zoneId) 静态方法来获取指定时区标识符创建 ZoneId 对象。

代码如下:

import java.time.ZoneId;public class ZoneID {public static void main(String[] args) {//获取默认时区ZoneId zoneId = ZoneId.systemDefault();System.out.println(zoneId);//获取指定时区ZoneId zoneId1 = ZoneId.of("Asia/Shanghai");System.out.println(zoneId1);}
}

运行结果如下:

        1.2 ZoneId 类中的 getAvailableZoneIds() 静态方法

        获取所有可用的时区标识符。

代码如下:

import java.time.ZoneId;public class ZoneID {public static void main(String[] args) {System.out.println(ZoneId.getAvailableZoneIds());}}    

运行结果如下:

        当然还有很多,没列举完。可以根据以上的时区,通过 of() 静态方法去创建相对应的对象。

        2.0 ZoneDateTime 类的说明

        ZoneDateTime 类是 Java 8 中引入的一个类,它是 LocalDateTime 类的子类,用于表示带有时区信息的日期和时间。它包含了日期、时间和时区的信息,并提供了一系列操作方法来处理日期和时间的转换、比较和计算。

        2.1 如何创建 ZoneDateTime 类的对象呢?

        可以通过 now() 静态方法创建当前系统默认的带时区的日期时间对象,也可以通过 now(ZoneId zone )  静态方法创建指定时区的日期时间对象。

代码如下:

import java.time.ZoneId;
import java.time.ZonedDateTime;public class ZoneID {public static void main(String[] args) {ZonedDateTime zonedDateTime = ZonedDateTime.now();System.out.println(zonedDateTime);ZoneId zoneId = ZoneId.of("America/Marigot");ZonedDateTime zonedDateTime1 = ZonedDateTime.now(zoneId);System.out.println(zonedDateTime1);}
}

运行结果如下:

       

          ZoneDateTime 类中的实例方法跟 LocalDateTime 类(介绍在下面的链接)中的实例方法大致相同,这里就不多赘述了。

https://blog.csdn.net/Tingfeng__/article/details/133839673?spm=1001.2014.3001.5501

        3.0 Instant 类的说明

        Instant 类是 Java 8 中引入的一个类,用于表示时间戳,即从 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)开始的秒数。它是一个不可变的类,可以用于获取当前的时间戳、进行时间戳的比较和计算等操作。

        3.1 如何创建 Instant 类的对象呢?

        可以通过 now() 静态方法来创建当前时间戳。

代码如下:

import java.time.Instant;public class Text_Instant {public static void main(String[] args) {Instant istand = Instant.now();System.out.println(istand);}
}

运行结果如下:

         3.2 如何获取其他时区的时间戳?

代码如下:

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;public class Text_Instant {public static void main(String[] args) {//先找到适合的需要的时区,创建ZoneId对象ZoneId zoneId = ZoneId.of("America/Port_of_Spain");//然后根据 now() 方法传入ZoneId对象来创建ZonedDateTimeZonedDateTime zonedDateTime = ZonedDateTime.now(zoneId);//再有ZonedDateTime类中实例方法 toInstant() 得到 Instant类型的对象。Instant instant = zonedDateTime.toInstant();System.out.println(instant);}
}

运行结果如下:

        3.3 Instant 类中的 getEpochSecond() 实例方法

        获取时间戳的秒数。

代码如下:

import java.time.Instant;public class Text_Instant {public static void main(String[] args) {Instant instant = Instant.now();long a = instant.getEpochSecond();System.out.println(a);}
}

运行结果如下:

        3.4 Instant 类中的 getNano() 实例方法

        从时间线开始,获取从第二个开始的纳秒数。

代码如下:

import java.time.Instant;public class Text_Instant {public static void main(String[] args) {Instant instant = Instant.now();int b = instant.getNano();System.out.println(b);}
}

运行结果如下:

        3.5 Instant 类中的 equals()、isBefore()、isAfter() 实例方法

        equals() 方法是用来判断两个相同类型的对象,如秒、毫秒、纳秒是否相同。

        isBefore() 方法是用来判断两个相同类型的对象,如秒、毫秒、纳秒是否在调用此方法的对象之前。

        isAfter() 方法是用来判断两个相同类型的对象,如秒、毫秒、纳秒是否在调用此方法的对象之后。

代码如下(以 equals() 方法为例):

import java.time.Instant;public class Text_Instant {public static void main(String[] args) {//创建当前时间戳对象Instant instant1 = Instant.now();//对当前时间戳减1秒Instant instant2 = instant1.minusSeconds(1);//对当前时间戳加300毫秒Instant instant3 = instant1.plusMillis(300);//判断两个对象的时间戳是否相同System.out.println(instant2.equals(instant3));}
}

运行结果如下:

        答案肯定是不一样的,都改变了,注意原来的时间戳对象是没有改变,只是创建了新的对象而已,这些对象都是不可变对象,内容不可改变的。

         本篇的API需要多练练手,实操一波熟练掌握即可。



相关文章:

进阶JAVA篇- ZoneId 类与 ZoneDateTime 类、Instant类的常用API(七)

目录 API 1.0 ZoneId 类的说明 1.1 如何创建 ZoneId 类的对象呢? 1.2 ZoneId 类中的 getAvailableZoneIds() 静态方法 2.0 ZoneDateTime 类的说明 2.1 如何创建 ZoneDateTime 类的对象呢? 3.0 Instant 类的说明 3.1 如何创建 Instant 类的对象呢…...

bat脚本字符串替换:路径中\需要替换,解决一些文件写入路径不对的问题

脚本 set dir_tmp%~dp0 set dir%dir_tmp:\\\\\% set dir_tmp%~dp0 新建一个变量dir_tmp,存储获取的脚本当前路径 set dir%dir_tmp:\\\\\% 新建一个变量dir ,存储字符串替换之后的路径 其中黄色的\\实际上代表的是一个\...

python一行命令搭建web服务,实现内网共享文件

python一行命令搭建web服务,实现内网共享文件 有时候我们在本地电脑访问自己的虚拟机的时候,可能因为某些原因无法直接CV文件到虚拟机。但此时我们又想上传文件到虚拟机,如果虚拟机和本地电脑可以互通。那么我们可以直接通过python来启动一个…...

RK3562开发板:升级摄像头ISP,突破视觉体验边界

RK3562开发板作为深圳触觉智能新推出的爆款产品,采用 Rockchip 新一代 64 位处理器 RK3562(Quad-core ARM Cortex-A53,主频最高 2.0GHz),最大支持 8GB 内存;内置独立的 NPU,可用于轻量级人工智能…...

数据结构与算法-队列

队列 🎈1.队列的定义🎈2.队列的抽象数据类型定义🎈3.顺序队列(循环队列)🔭3.1循环队列🔭3.1循环队列类定义🔭3.2创建空队列🔭3.3入队操作🔭3.4出队操作&#…...

腾讯云轻量2核4G5M可容纳多少人访问?

腾讯云2核4G5M服务器支持多少人在线访问?卡不卡?腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户…...

【分布式计算】九、容错性 Fault Tolerance

分布式系统应当有一定的容错性,发生故障时仍能运行 一些概念: 可用性Availability:系统是否准备好立即使用 可靠性Reliability:系统连续运行不发生故障 安全性:衡量安全故障的指标,没有严重事件发生 可维护…...

The SDK location is inside Studio install location 解决

The SDK location is inside Studio install location 解决 安装 Android Studio SDK 时提示:The SDK location is inside Studio install location 解决 问题: 由于 SDK 与 编辑器(Android Studio)的安装在同一目录下所以报错。 解决 你需要在 Andro…...

【蓝桥】数树数

一、题目 1、题目描述 给定一个层数为 n n n 的满二叉树,每个点编号规则如下: 具体来说,二叉树从上往下数第 p p p 层,从左往右编号分别为:1,2,3,4,…, 2p-1。 给你一条从根节点开始的路径&#xff0…...

2、Windows下安装

目录 一.安装 1、双击下载的程序: 2、加载完成后,会进入如下界面(选第一个Developer Default) 3、然后点击Next 点击Execute 然后Next 4.继续next注意端口为3306 5.继续next,输入账户密码(要有大小写…...

vue中transition的使用

Vue中的<transition>组件用于在元素或组件添加/移除时应用过渡动画。它能够包裹需要进行过渡效果的元素或组件&#xff0c;通过设置相应的CSS样式来实现过渡动画效果。 <transition name"过渡效果名称" before-enter"beforeEnter" enter"…...

性能测试中如何使用RunnerGo还原混合并发场景

我们在进行软件开发时经常需要进行性能测试、压力测试和负载测试。其中有一类测试场景叫做混合并发测试&#xff0c;需要模拟多个接口下不同数量的用户使用场景&#xff0c;检查同时处理多个并发任务的能力&#xff0c;本文将展示如何使用开源的RunnerGo还原混合并发场景。 在…...

KanziStudio described using object-oriented design patterns(持续更新...)

1.绑定-mvc mvc&#xff0c;model数据与view控件分离。...

线程同步的几种方式

目录 互斥锁条件变量读写锁信号量CAS-- 参考 线程同步方式有互斥锁&#xff0c;条件变量&#xff0c;信号量&#xff0c;读写锁&#xff0c;CAS锁等方式 互斥锁 互斥量 pthread_mutex_t在执行操作之前加锁&#xff0c;操作完之后解锁. 使用互斥量&#xff0c;来确保同一时刻只…...

Linux网络编程系列之服务器编程——多路复用模型

一、什么是多路复用模型 服务器的多路复用模型指的是利用操作系统提供的多路复用机制&#xff0c;同时处理多个客户端连接请求的能力。在服务器端&#xff0c;常见的多路复用技术包括select、poll和epoll等。这些技术允许服务器同时监听多个客户端连接请求&#xff0c;当有请求…...

在SQL语句里使用正则表达式,因该怎么使用

在SQL中使用正则表达式通常需要使用特定的函数或运算符&#xff0c;具体的语法可能因不同的数据库系统而有所不同。以下是使用正则表达式的一般方法&#xff0c;但请注意&#xff0c;具体语法可能会因您使用的数据库而有所不同。 一般情况下&#xff0c;您可以使用以下方法在S…...

扫码登录-测试用例设计

扫码登录测试用例...

PyTorch CUDA GPU高占用测试

0x00 问题描述 安装完成PyTorch、CUDA后&#xff0c;验证PyTorch是否能够通过CUDA高占用GPU&#xff08;占用>95%&#xff09;&#xff0c;特地使用以下代码测试。 0x01 代码设计 这个代码会持续执行神经网络的训练任务&#xff0c;每次循环都进行前向传播、反向传播和参数…...

Java|学习|abstract ,接口 Interface , Object

1.abstract 1.1 abstract abstract 是修饰符&#xff0c;表示抽象的&#xff0c;用来修饰抽象类和抽象方法。 abstract 修饰的类是抽象类&#xff0c;抽象类不能创建对象&#xff0c;主要用于被子类继承。 abstract 修饰的方法是抽象方法&#xff0c;该方法没有方法体&…...

安全的Sui Move是Web3大规模采用之路的基石

没有信任&#xff0c;就没有Web3的大规模采用。还有其他重要障碍阻碍了首个十亿用户的到来&#xff0c;包括令人困惑的用户体验、复杂的身份验证模式以及不确定的监管体系&#xff0c;但所有障碍中&#xff0c;要数大多数人对区块链技术持怀疑和不信任态度最严重。 对于许多人…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...