java中LocalDateTime,Instant,ZoneID,ZoneDateTime,DateTimeFormatter类常用的API

LoaclDate LocalTime LocalDateTime类

LocalDate :代表本地日期(年,月,日,星期)

LocalTime:代表本地时间(时,分,秒,纳秒)API

LocalDateTime:代表本地日期,时间

以上三个类获取对象的方法是:public static xxx.now();

import java.time.LocalDate;public class test {public static void main(String[] args) {//0:获取本地日期对象(不可变的)LocalDate ld=LocalDate.now();//年 月 日System.out.println(ld);//1:获取日期对象中的信息(get)int year =ld.getYear();//年int month=ld.getMonthValue();//月份int day=ld.getDayOfMonth();//一个月的第几天int dayofYear=ld.getDayOfYear();//一年的第几天int dayofWeek=ld.getDayOfWeek().getValue();//星期几System.out.println(dayofWeek);//星期3//2:直接修改某个信息(with)LocalDate d2=ld.withYear(2080);//会返回一个新的LocalDate对象LocalDate d3=ld.withDayOfMonth(4);LocalDate d4=ld.withMonth(5);//3:把某个信息加多少(plus)LocalDate d5=ld.plusWeeks(3);//4:把某个信息减多少(minus)LocalDate d6=ld.minusMonths(4);//5:获取指定日期的LocalDate对象LocalDate d7=LocalDate.of(2050,1,1);LocalDate d8=LocalDate.of(2050,1,1);System.out.println(d7);//2050-01-01//6:判断两个日期对象,是否相等,在前还是在后:equals isBefore isAfterSystem.out.println(d7.equals(d8));//trueSystem.out.println(d7.isAfter(ld));//trueSystem.out.println(d7.isBefore(ld));//false}
}
//7:可以直接把LocalDateTime对象变成LocalDate对象和LocalTime
LocalDateTime ldt=LocalDateTime.now();
System.out.println(ldt);
LocalDate d9=ldt.toLocalDate();
LocalTime t1=ldt.toLocalTime();//也可以把LocalDate和LocalTime对象变成一个LocalDateTime对象
LocalDateTime ldt2=LocalDateTime.of(d9,t1);

总结:这三个类获取对象的方法有

public static xxx now();

public static xxx of();获取指定时间的对象

 ZoneId时区类:
public static ZoneId systemDefault()

Gets the system default time-zone.

获取系统默认时区 

public static ZoneId of(String zoneId) 

 Obtains an instance of ZoneId from an ID ensuring that the ID is valid and available for use.

获取一个指定时区

public static Set<String> getAvailableZoneIds()

Gets the set of available zone IDs. 

获取java支持的所有时区

 ZoneDateTime(LocalDateTime+ZoneId)带时区时间的常见方法:

public static ZonedDateTime now()

Obtains the current date-time from the system clock in the default time-zone. 

获取当前时区的ZoneDateTime对象

public static ZonedDateTime now(ZoneId zone)

Obtains the current date-time from the system clock in the specified time-zone.

获取指定时区的ZoneDateTime对象

 

import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;public class test {public static void main(String[] args) {//1:获取系统默认时区ZoneId zoneid=ZoneId.systemDefault();System.out.println(zoneid.getId());//Asia/ShanghaiSystem.out.println(zoneid);//Asia/Shanghai//2:获取所有时区System.out.println(ZoneId.getAvailableZoneIds());//获取指定时区的ZoneId对象ZoneId zoneid2=ZoneId.of("America/New_York");System.out.println(zoneid2);//America/New_York//获取当前时区的ZoneDateTime对象ZonedDateTime z1=ZonedDateTime.now();System.out.println(z1);//2024-04-04T20:13:17.006835900+08:00[Asia/Shanghai]//获取指定时区的ZoneDateTime对象ZonedDateTime z2=ZonedDateTime.now(zoneid2);System.out.println(z2);//2024-04-04T08:14:52.356801600-04:00[America/New_York]//获取世界标准时间ZonedDateTime z3=ZonedDateTime.now(Clock.systemUTC());System.out.println(z3);//2024-04-04T12:17:47.416688700Z}
}

 Instant类:时间线上的某个时刻/时间戳

通过获取Instant的对象可以拿到此刻的时间,该时间有两个部分组成:从1970-1-1 00:00:00开始到现在的总秒数和不到一秒的纳秒数

public static Instant now()

Obtains the current instant from the system clock.

获取当前时间的Instant对象

public long getEpochSecond()

Gets the number of seconds from the Java epoch of 1970-01-01T00:00:00Z.

public int getNano()

Gets the number of nanoseconds, later along the time-line, from the start of the second. 

获取不满1s的纳秒

public class test {public static void main(String[] args) {//获取当前时间的Instant对象Instant i1=Instant.now();//不可变对象System.out.println(i1);//2024-04-04T12:29:43.772489700Z//获取总秒数long second= i1.getEpochSecond();System.out.println(second);//1712233841//获取不满1s的纳秒数int nano= i1.getNano();System.out.println(nano);//930559300}
}

 DateTimeFormatter类

public static DateTimeFormatter ofPattern(String pattern)

 Creates a formatter using the specified pattern.

获取格式化器对象

public String format(TemporalAccessor temporal)

Formats a date-time object using this formatter. 

格式化时间

public class test {public static void main(String[] args) {DateTimeFormatter d=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");//对时间格式化LocalDateTime ldt=LocalDateTime.now();System.out.println(ldt);//2024-04-04T20:42:16.266254400String s= d.format(ldt);System.out.println(s);//2024年04月04日 20:52:39//第二种格式化的方法,LocalDateTime自己调用format方法String rs= ldt.format(d);System.out.println(rs);//2024年04月04日 20:52:39//解析时间,使用LccalDateTime的parse方法String dateStr="2024年12月12日 20:42:16";LocalDateTime ldt2=LocalDateTime.parse(dateStr,d);System.out.println(ldt2);//2024-12-12T20:42:16}
}

 Period类:计算日期间隔(年,月,日)

用于两个LocalDate对象

public static Period between(LocalDate startDateInclusive, LocalDate endDateExclusive)

Obtains a Period consisting of the number of years, months, and days between two dates.

传入两个日期对象,得到period对象

public class test {public static void main(String[] args) {//创建一个Period对象LocalDate d1=LocalDate.of(2028,3,1);LocalDate d2=LocalDate.of(2050,2,5);Period p=Period.between(d1,d2);//获取相差信息int year=p.getYears();int month=p.getMonths();int day=p.getDays();System.out.println(year);//21System.out.println(month);//11System.out.println(day);//4}
}

 Duration

可以用于计算两个时间对象相差的天数,小时数,分数,秒数,纳秒数;支持LocalTime,LocalDateTime,Instant

public static Duration between(Temporal startInclusive, Temporal endExclusive)

 传入两个时间对象,得到Duration对象

public class test {public static void main(String[] args) {LocalDateTime l1=LocalDateTime.of(2025,11,11,12,12,10);LocalDateTime l2=LocalDateTime.of(2024,11,23,10,10,10);//1:得到Duration对象Duration d=Duration.between(l1,l2);//2:获得差值System.out.println(d.toDays());//间隔多少天System.out.println(d.toHours());//间隔多少小时System.out.println(d.toMinutes());//间隔多少分System.out.println(d.toSeconds());//间隔多少秒System.out.println(d.toMillis());//间隔多少毫秒System.out.println(d.toNanos());//间隔多少纳秒}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【leetcode面试经典150题】13.除自身以外数组的乘积(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

达梦disql登录数据库显示“未连接”

问题&#xff1a;达梦数据库在使用disql登录时&#xff0c;显示“未连接”。 指定了IP和端口号还是连接异常。 [dmdbatest ~]$ disql sysdba/Dameng123 disql V8 SQL> select * from v$instances; 未连接 SQL> exit [dmdbatest ~]$ disql sysdba/Dameng123localhost:52…

C++运算符重载如何模拟数学表达式,或模拟Python sympy和numpy

在人工智能数学基础一书中&#xff0c;下面是一题Python求函数极限的例子&#xff1a; 【例2.6】使用Python编程求 lim( x → 1) (x^2 - 1 / x - 1) ————————————————————————————————————————— import sympy from sympy import oo…

医疗大数据现状及发展问题探讨

医疗大数据&#xff0c;作为近年来备受瞩目的领域&#xff0c;其发展和变化的速度之快令人瞩目。从最初的概念炒作到如今的实际应用&#xff0c;短短三年多的时间&#xff0c;我们已经见证了医疗大数据领域的巨大变革。 临床数据的公开透明&#xff0c;为医疗大数据的利用提供…

Java基础知识总结(41)

&#xff08;1&#xff09; 在Java语言中&#xff0c;根据定义变量的位置不同&#xff0c;可以将变量分成两大类&#xff1b;成员变量和局部变量。 &#xff08;2&#xff09;成员变量 成员变量包括类变量&#xff08;用static修饰的变量&#xff09;和实例变量&#xff08;不用…

用Skimage学习数字图像处理(018):图像形态学处理(上)

本节开始讨论图像形态学处理&#xff0c;这是上篇&#xff0c;将介绍与二值形态学相关的内容&#xff0c;重点介绍两种基本的二值形态学操作&#xff1a;腐蚀和膨胀&#xff0c;以及三种复合二值形态学操作&#xff1a;开、闭和击中击不中变换。 目录 9.1 基础 9.2 基本操作…

ubuntu远程服务部署,Docker,蓝牙无线局域网,SSH,VNC,xfce4,NextTerminal,宝塔,NPS/NPC,gost,openwrt

开机启动 /lib/systemd/system/rc-local.service 添加 [Install] WantedBymulti-user.target Aliasrc-local.service/etc/rc.local #!/bin/sh 添加开机启动需要执行的脚本sudo chmod 777 /lib/systemd/system/rc-local.service sudo chmod x /etc/rc.local #systemctl dis…

漫谈GIS和空间数据库技术

1 GIS和CAD有啥区别 地理信息系统&#xff08;GIS&#xff09;和计算机辅助设计&#xff08;CAD&#xff09;是两种不同的技术&#xff0c;它们在功能、应用和数据处理方面有着显著的区别。以下是根据搜索结果得出的GIS和CAD的主要区别&#xff1a; 1. **数据处理的侧重点不同…

金陵科技学院软件工程学院软件工程专业

感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦~~ 感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦~~ 感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦~~ 感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦…

【其他】灾害预警,科技助力:手机地震预警功能设置指导

22024年4月3日7时58分在台湾花莲县海域遭遇了一场7.3级的强烈地震&#xff0c;震源深度12公里&#xff0c;震中位于北纬23.81度&#xff0c;东经121.74度&#xff0c;距台湾岛约14公里。震中5公里范围内平均海拔约-3560米。这场突如其来的自然灾害给当地居民的生活带来了巨大的…

从永远到永远-Git中tag的使用

Git中tag的使用 1.tag的作用2.使用背景3.tag的使用1.种类2.创建标签3.查看标签3.推送标签4. 删除标签: 4.idea可视化操作1.创建标签2.推送标签 999 删除、指定commit、验证暂时不表 1.tag的作用 Tag(标签)用来记录某个特定的提交(commit)。一个 Tag 被用来标记重要的历史节点&…

物联网实战--入门篇之(八)嵌入式-空气净化器

目录 一、风扇调速 二、通讯协议 三、净化器运行逻辑 一、风扇调速 单片机是不能直接驱动电机的&#xff0c;因为主芯片的驱动电流比较小(50mA左右)&#xff0c;他们之间正常还要有个电机驱动器&#xff0c;常用的有TB6612、L298和L9110等&#xff0c;目前项目用的这个电机它…

工具篇之Hutool

一、概述 1.1介绍 Hutool是一个小而全的Java工具类库&#xff0c;通过静态方法封装&#xff0c;降低相关API的学习成本&#xff0c;提高工作效率&#xff0c;使Java拥有函数式语言般的优雅&#xff0c;让Java语言也可以“甜甜的”。 Hutool中的工具方法来自于每个用户的精雕细…

猫头虎技术分享 || 断网了,还能ping127.0.0.1吗?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【数据分析面试】6.计算对话总数(SQL)

题目&#xff1a;计算对话总数 给定了名为 messenger_sends 的消息发送表格&#xff0c;找出总共有多少个唯一的对话。 注&#xff1a;在某些记录中&#xff0c;receiver_id 和 sender_id 从初始消息中互换了。这些记录应视为同一个对话。 示例&#xff1a; 输入&#xff1…

Linux进程控制 Part 1

Linux进程控制 文章目录 Linux进程控制Linux系统任务管理的方法PCB的原型 Linux查看获取进程id的方式现象解释 Linux 进程的状态首先学习查看进程状态的命令常见的几种状态僵尸进程的危害 孤儿进程&#xff1a; 进程优先级概念&#xff1a;PRI and NI查看进程优先级的命令 环境…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--php函数

php函数 wordpress会封装一部分函数&#xff0c;比如bloginfo该函数的作用是直接调用你设置的你的网站的名称 示例 This is our amazing custom theme <?php echo 22; function myfirstfunction(){ echo 33; echo "<p>Hello ,this is my first function</…

2024-04-02(js)

1.将函数A作为参数传递给函数B&#xff0c;称A为回调函数 2.插件&#xff1a;就是别人写好的一些代码&#xff0c;我们只需要复制对应的代码&#xff0c;就可以直接实现对应的效果 3.js是一种单线程语言&#xff0c;同一时间只能做一件事 4.js先执行完所有的同步任务&#x…

【pycharm】在debug循环时,如何快速debug到指定循环次数

【pycharm】在debug循环时&#xff0c;如何快速debug到指定循环次数 【先赞后看养成习惯】求关注收藏点赞&#x1f600; 在 PyCharm 中&#xff0c;可以使用条件断点来实现在特定循环次数后停止调试。这可以通过在断点处右键单击&#xff0c;然后选择 “Add Breakpoint” -&g…

力扣刷题部分笔记

Leetcode 力扣刷题笔记&#xff0c;记录了几个月来的题目记录&#xff0c;将会继续保持刷题~ 2024.01 1768.交替合并字符串 创建字符串不需要声明长度&#xff08;动态分配内存&#xff09;&#xff0c;push_back()可以加入某个字符&#xff0c;append()一般用于添加字符串…