日期与时间(Java)

文章目录

    • 日期与时间(Java)
      • 一、JDK8之前的
        • 1.1 Date
        • 1.2 SimpleDateFormat
        • 1.3 Calendar
      • 二、 JDK8之后的
        • 2.1 LocalDate、LocalTime和LocalDateTime
        • 2.2 ZoneId和ZonedDateTime
        • 2.3 Instant
        • 2.4 DateTimeFormatter
        • 2.4 Period和 Duration
      • 🎉写在最后

日期与时间(Java)

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
在这里插入图片描述
💥个人主页:code袁
💥 所属专栏:Java

一、JDK8之前的

1.1 Date

Date 代表获取当前此时此刻的时间

1.构建日期对象

  Date date=new Date();System.out.println(date);

结果

Fri Mar 15 23:37:24 GMT+08:00 2024

2.获取毫秒值

  Date date=new Date();System.out.println(date.getTime());

结果

1710517044440

3.毫秒值转化为时间

   long time=date.getTime();Date d2=new Date(time);System.out.println(d2);
1.2 SimpleDateFormat

格式化、解析时间的
注意: 解析时间的格式必须与被解析时间的格式一模一样,否则报错!

1.日期的格式化

   Date date=new Date();SimpleDateFormat sf= new SimpleDateFormat("YYYY-MM-dd HH:mm:ss EEE a");System.out.println(sf.format(date));

结果

2024-03-15 23:37:24 星期五 下午

2.字符串时间解析成日期对象

  String start="2023年11月11日 0:0:0";SimpleDateFormat spf= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Date startDt= spf.parse(start);

结果

Sat Nov 11 00:00:00 GMT+08:00 2023
1.3 Calendar

代表日历,获取信息更丰富

1.日历对象

 Calendar now=Calendar.getInstance();System.out.println(now);

结果

ava.util.GregorianCalendar[time=1710517971008,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2024,MONTH=2,WEEK_OF_YEAR=11,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=75,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=52,SECOND=51,MILLISECOND=8,ZONE_OFFSET=28800000,DST_OFFSET=0]

2.获得日期

 Calendar now=Calendar.getInstance();System.out.println(now.getTime());

3.获得毫秒值

Calendar now=Calendar.getInstance();System.out.println(now.getTimeInMillis());

4.修改日期

Calendar now=Calendar.getInstance();
now.add(Calendar.DAY_OF_YEAR,100); 
System.out.println(now.get(Calendar.MONTH));

二、 JDK8之后的

2.1 LocalDate、LocalTime和LocalDateTime

LocalDate、LocalTime和LocalDateTime在语法上基本一致。
LocalDate获取年 月 日
LocalTime获取时 分 秒 纳秒
LocalDateTime获取年 月 日 时 分 秒 纳秒

1.获取本地日期对象

  LocalDate ld=LocalDate.now();System.out.println(ld);

2.获取具体的

        int year=ld.getYear();int month=ld.getMonthValue();int day=ld.getDayOfYear();//一年中第几天int dayOfYear=ld.getDayOfYear();//星期几int dayOfWeek=ld.getDayOfWeek().getValue();System.out.println(dayOfYear+"-----"+dayOfWeek);
2024-03-16
76-----6

3.基本操作

//修改 withYear withMonth,withDyofMonthLocalDate d2= ld.withYear(2028);  //修改的值在d2中System.out.println(d2.getYear());//加 plusYears plusMonthLocalDate d3=ld.plusYears(2);System.out.println(d3);//减 minusYearsLocalDate d4=ld.minusYears(4);System.out.println(d4);//获取指定日期LocalDate d5=LocalDate.of(2035,05,12);System.out.println(d5);//判断日期对象System.out.println(d5.equals(d4));  //判断是否相等System.out.println(d5.isAfter(d4)); //判断是否在后System.out.println(d5.isBefore(d4)); //判断是否在前
2.2 ZoneId和ZonedDateTime

ZonedDateTime获取时区的时间
ZoneId 获取时区

 //zoneId 时区ZoneId zoneId= ZoneId.systemDefault();System.out.println(zoneId.getId());//带时区的时间ZonedDateTime now=ZonedDateTime.now();System.out.println(now);//获取标准时间ZonedDateTime now1=ZonedDateTime.now(Clock.systemUTC());System.out.println(now1);//系统默认时间ZonedDateTime now2=ZonedDateTime.now();System.out.println(now2);System.out.println(now2.getYear());
2.3 Instant
//创建Instant对象 不可变对象Instant It=Instant.now();System.out.println(It);//获取总秒数long second=It.getEpochSecond();System.out.println(second);//不够1秒的纳秒数int nano=It.getNano();System.out.println(nano);
2.4 DateTimeFormatter

对日期进行格式化

      //日期格式化DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy年mm月dd日 HH:mm:ss");LocalDateTime ldt5=LocalDateTime.now();System.out.println(dtf.format(ldt5));//解析时间String date ="2024年14月17日 00:14:17";LocalDateTime ldt6=LocalDateTime.parse(date,dtf);System.out.println(ldt6);
2.4 Period和 Duration

Period计算两个日期间隔的年数,月数,天数
Duration计算两个日期间隔的时,分,秒

  //日期间隔LocalDate start=LocalDate.of(2028,05,23);LocalDate end=LocalDate.of(2024,11,20);//创建period对象Period period=Period.between(end,start);System.out.println(period.getYears());System.out.println(period.getMonths());System.out.println(period.getDays());LocalDateTime t1=LocalDateTime.of(2028,05,23,11,11,11);LocalDateTime t2=LocalDateTime.of(2024,11,20,12,12,13);//获取间隔时 分 秒Duration duration=Duration.between(t2,t1);//间隔对象间隔信息System.out.println(duration.toDays());System.out.println(duration.toHours());System.out.println(duration.toMinutes());System.out.println(duration.toMillis());

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~

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

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

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Web)下篇

onRequestSelected onRequestSelected(callback: () > void) 当Web组件获得焦点时触发该回调。 示例: // xxx.ets import web_webview from ohos.web.webviewEntry Component struct WebComponent {controller: web_webview.WebviewController new web_webv…

Github Copilot 工具,无需账号,一键激活

① 无需账号,100%认证成功!0风险,可联网可更新,,支持copilot版本升级,支持chat ② 支持windows、mac、linux系统等设备 ③一号通用,支持所有IDE(AppCode,CLion,DataGrip,GoLand,IntelliJ IDEA …

Linux 基础-查看和设置环境变量

一,查看环境变量 在 Linux中,环境变量是一个很重要的概念。环境变量可以由系统、用户、Shell 以及其他程序来设定,其是保存在变量 PATH 中。环境变量是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型…

前端跨平台开发框架:简化多端开发的利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

OpenCV系列文章目录(持续更新中......)

引言: OpenCV是一个开源的计算机视觉库,由英特尔公司开发并开源的一组跨平台的C函数和少量的C函数组成,用于实时图像处理、计算机视觉和机器学习等应用领域。OpenCV可以在包括Windows、Linux、macOS等各种操作系统平台上使用,具…

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

需要准备材料:Origin、PL Decay数据txt文件 首先打开Origin画图软件 导入数据,按照下图箭头操作直接导入 双击你要导入的PL Decay的txt数据文件,然后点OK 继续点OK 数据导入后首先删除最大光子数之前的无效数据,分析的时候用…

计算机设计大赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …

特殊内齿轮加工的另一种选择

内齿轮加工普遍采用插齿或拉削,但对于一些特殊齿廓的内齿轮来说,插齿可能会有一定的困难,或者成本较高。在这种情况下,线切割加工不失为一种不错的选择。那么什么样的零件需要选择这种加工方式呢?一起来看看&#xff1…

Mr-Robot1靶场练习靶场推荐小白入门练习靶场渗透靶场bp爆破wordpress

下载链接: Mr-Robot: 1 ~ VulnHub 安装: 打开vxbox,菜单栏----管理----导入虚拟电脑 选择下载完的ova文件,并修改想要保存的位置(也可以保持默认位置) 导入完成后可以根据自己的情况去配置网络链接方式 完成…

数学建模--MATLAB基本使用

1.线性方程组 这个是一个线性方程组(属于线性代数的范畴),Axb类型的方程,如果使用MATLAB进行求解,就需要分别表示A矩阵(线性方程组未知数前面的系数),b矩阵(表示等式右边…

大数据-基础架构设施演进的过程

一、第一阶段-Hadoop 以Hadoop为代表的离线数据处理基础设施 1.1、围绕HDFS和MR,产生了一系列的组件 面向在线KV操作的HBase面向SQL的Hive面向工作流的PIG 1.2、随着对批处理性能要求越来越高,产生了Tez、Spark、Flink等计算引擎。RM模型也逐步进化成…

SpringAI——Java生态接入LLM

最近,Spring官网发布了SpringAI,可点此查看https://spring.io/blog/2024/03/12/spring-ai-0-8-1-released,对于SpringAI的介绍,可看官方文档:https://spring.io/projects/spring-ai#overview。 本文将使用SpringAI配合…

字符函数以及字符串函数

1.strlen的使用和模拟实现 • 字符串以 \0 作为结束标志,strlen函数返回的是在字符串中 \0 前⾯出现的字符个数(不包 含 \0 )。 • 参数指向的字符串必须要以 \0 结束。 • 注意函数的返回值为size_t,是⽆符号的( 易错 &#xff…

Python之requests实现github模拟登录

文章目录 github 模拟登录前言模拟登录流程抓包操作查看登录表单的内容登录操作 模拟登录操作在 main函数的调用获得 auth_token调用/session接口登录处理检测登录是否成功 总结: github 模拟登录 前言 前面学习了requests模块的基础学习后,接下来做一个…

Pytorch学习 day14(模型的验证步骤)

如何利用已经训练好的模型,验证它的结果,步骤如下: 步骤一:加载测试输入并更改为合适尺寸 保存图片到指定文件夹下,注意是否为同级目录注意:返回上一级目录为“…/xxx"有时,我们自己的输…

前端React篇之React的生命周期有哪些?

目录 React的生命周期有哪些?挂载阶段(Mounting)更新阶段(Updating)卸载阶段(Unmounting)错误处理阶段(Error Handling) React常见的生命周期React主要生命周期 React的生…

27-Java MVC 模式

Java空对象模式 实现范例 MVC模式代表 Model-View-Controller(模型-视图-控制器) 模式MVC模式用于应用程序的分层开发 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO 它也可以带有逻辑,在数据变化时更新控制…

Ubuntu 如何安装 Beyond Compare?

Ubuntu20.04安装Beyond Compare 4.3.7 一、官网下载方式一:方法二:使用 .deb 包安装 二、安装相关依赖和bcompare三、破解常见错误解决方法 ) 文件比较工具Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件…

AST解web控制流平坦化

此代码可以解决大部分 while if else 控制流平坦化原理: 先将 if 语句转为 switch 语句,再将 switch 分支合并,最后删除已合并的分支(具体看代码) 实现效果图 首先安装依赖: npm install babel/parser npm…

Java后端八股-------并发编程

图中的 synchronized方法如果没有锁,那么可能会有超卖,数据错误等情况。 加锁之后会按顺序售卖。 synchronized的底层是monitor。 线程没有竞争关系的时候,引入了轻量级锁,当需要处理竞争关系的时候一定要用到重量级锁(线程的…