Java中Date时间类的使用

目录

一、java.util.Date实例化介绍

        一)、Date对象实例化

        二)设置Date对象指定日期 :

        三)将日期格式化输出为中文状态

二、方法介绍

三、方法演示


一、java.util.Date实例化介绍

        一)、Date对象实例化

//使用无参构造器
Date date1 = new Date();
System.out.println(date1);//使用有参构造器,参数为long类型的时间戳,将时间戳自动转为时间对象
Date date2 = new Date(60000);
System.out.println(date2);

运行结果:

        Date 类的无参数构造方法获取的是系统当前的时间,显示的顺序为星期、月、日、小时、分、秒、年。
        Date 类带 long 类型参数的构造方法获取的是距离 GMT 指定毫秒数的时间, 60000 毫秒是一分钟,而 GMT(格林尼治标准时间)与 CST (中央标准时间)相差 8 小时,也就是说 1970 1 1 00:00:00 GMT 与 1970 1 1 08:00:00 CST 表示的是同一时间。 因此距离 1970 1 1 00:00:00 CST 一 分钟的时间为 1970 1 1 00:01:00 CST ,即使用 Date 对象表示为 Thu Jan 01 08:01:00 CST 1970

        二)设置Date对象指定日期 :

1、实例化对象时设置时间:

        要想在实例化Date对象时直接告诉Date对象特定的时间,也就是说让Date对象指向自己设定定的时间而非系统当前时间。
        直接写入年份和月份是得不到想要的结果的。因为java中Date是从1900年开始算的,所以第一个参数要填入你想要的年份后要减去1900,月需要减1,日可以直接插入。时分秒也可以直接插入。
        如果我们想要添加的时间需要精确到年月日时分秒,按顺序依次按规则输入即可。如果只需精确到年月日时分秒三个参数可以不填,系统默认时分秒为00:00:00。
代码演示:
//使用有参构造器实例化对象
Date date4 = new Date(2023 - 1900, 6 - 1, 5, 6, 2, 4);
Date date5 = new Date(2023-1900, 6 - 1, 5);
System.out.println(date4);
System.out.println(date5);

运行结果展示:

以上两种是传入参数,我们还可以用时间字符串来进行设置Date对象的时间值

1)使用特定的格式进行实例化并指定时间:

在使用此方法时必须按照“年/月/日 时:分:秒”此种顺序和格式,例如:

Date date1= new Date("2023/6/16 11:40:00");
System.out.println(date1);

运行结果展示:

2、使用格式化工具进行时间Date时间设置

Date date1= new Date();
Date date2= new Date();//声名两个格式化工具,并且设置格式化字符串格式
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//因为在格式化时,如果不按照指定格式进行输入无法进行格式化会出现异常,所以用try-catch处理异常
try {date1 = sdf1.parse("2023年06月16日 19:17:00");date2 = sdf2.parse("2023-06-16 19:17:00");
}catch (Exception ignored){}System.out.println(date1);
System.out.println(date2);

 运行结果展示:

        三)将日期格式化输出为中文状态

以上输出均为英文状态下的,当然我们可以是用日期格式话使输出为中文状态,例:

Date date = new Date();
//格式化输出
System.out.printf("%tF %<tT",date);

 输出结果展示:

 

二、方法介绍

方法

描述
boolean after(Date when)
判断此日期是否在指定日期之后
boolean before(Date when)
判断此日期是否在指定日期之前
int compareTo(Date anotherDate)
比较两个日期的顺序(返回值为-1代表日期从小到大,返回值为1代表日期从大到小)
boolean equals(Object obj)
比较两个日期的相等性
long getTime()
返回自 1970 1 1 00:00:00 GMT 以来,此 Date 对象表示的毫秒数
String toString()
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 。 其 中 dow 是一周中的某一天 (Sun Mon Tue Wed Thu Fri Sat)

三、方法演示

1、boolean after(Date when)方法,判断此日期是否在指定日期之后:

//从格林尼治时间1970年1月1日 00:00:00开始往后推60000毫秒
Date date2 = new Date(60000);
System.out.println(date2);//System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
ystem.out.println(date2.after(date3));

运行结果:

2、 boolean before(Date when)方法,判断此日期是否在指定日期之前:

Date date2 = new Date(60000);
System.out.println(date2);//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
System.out.println(date2.before(date3));

 运行结果:

3、int compareTo(Date anotherDate)方法,比较两个日期的顺序(返回值为-1代表日期从小到大,返回值为1代表日期从大到小):

Date date2 = new Date(60000);
System.out.println(date2);//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
System.out.println(date2.compareTo(date3));

 运行结果:

4、boolean equals(Object obj)方法,比较两个日期的相等性:

Date date2 = new Date(60000);
System.out.println(date2);//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
System.out.println(date2.equals(date3));

注:时间戳是从1970年1月1日开始累计到指定时间的毫秒数

 运行结果:

5、long getTime()方法,如果Date对象没有指定时间则返回自 1970 1 1 00:00:00 GMT 以来此 Date 对象表示的毫秒数,如果Date对象指定时间则返回指定时间的时间戳(从1970年1月1日开始累计到指定时间的毫秒数):

//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());
Date date6 = new Date("2023/6/16 11:40:00");
System.out.println(date3.toString());
System.out.println(date6.getTime());

运行结果:

6、String toString()方法,把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。 其 中 dow 是一周中的某一天(SunMonTueWedThuFri Sat):

//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());
System.out.println(date3);
System.out.println(date3.toString());

运行结果:

此方法和直接输出Date对象的结果没有任何差异,因此在使用时我们很少使用。

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

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

相关文章

Day01_变量和数据类型(注释,关键字,标识符,数据类型,字面量,变量,常量,进制,计算机存储单位,Java的基本数据类型的存储范围,计算机如何表示数据)

文章目录 JavaSE_Day01 变量和数据类型学习目标1.1 注释&#xff08;*comment*&#xff09;&#xff08;掌握&#xff09;1.2 关键字&#xff08;*keyword*&#xff09;&#xff08;掌握&#xff09;1.3 标识符( identifier)&#xff08;掌握&#xff09;1.3.1 标识符的命名规则…

如果我要访问一个网址,那么在网络中会有哪些过程

访问一个网址是我们日常网络使用中非常常见的操作&#xff0c;背后涉及到一系列精密而复杂的步骤。这个过程包括DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求、服务器响应、浏览器渲染等环节。在这篇文章中&#xff0c;我们将深入探讨这些步骤&#xff0c;并解释它们在…

JVM 内存模型

1 什么是 JVM 内存模型 JVM 需要使用计算机的内存&#xff0c;Java 程序运行中所处理的对象或者算法都会使用 JVM 的内 存空间&#xff0c;JVM 将内存区划分为 5 块&#xff0c;这样的结构称之为 JVM 内存模型。 2 JVM 为什么进行内存区域划分 随着对象数量的增加&#xff…

“减半倒数80天”!比特币18个月后将飙涨四倍!但多数矿企短期面临亏损?

随着比特币现货ETF的顺利推出&#xff0c;比特币的另一个潜在的催化剂就是即将到来的第四次减半。据Bitcoin Block Half最新数据&#xff0c;目前距离比特币减半仅剩余约80天&#xff0c;预计将在今年4月22日发生&#xff0c;届时&#xff0c;每个区块的比特币奖励将从当前的6.…

常见分类网络的结构

VGG16 图片来自这里 MobilenetV3 small和large版本参数,图片来着这里 Resnet 图片来自这里

PCB设计10条重要布线原则(学习笔记)

文章目录 一、连线精简二、避免走直角线三、差分走线四、蛇形走线五、圆滑走线六、数字与模拟分开七、3W原则八、20H原则九、铜箔承载电流十、过孔承载电流 一、连线精简 尽量用最短的路径去布线 1、可以省资源 2、信号差损少 3、线能不拐弯就不拐弯 4、能不换层就不换层 二…

Modern C++ std::get<n>(tuple)的原理

1. 前言 前面我们讲过std::tuple的实现原理&#xff0c;但没有讲如何取出数据&#xff0c;本节着重讲讲这点。本节与之前的blog有较大关联&#xff0c;如果您没看&#xff0c;这里有链接&#xff0c;链接已按由浅入深排好序&#xff0c;您可以按顺序阅读。如果时间少可以直接看…

[工具探索]Safari 和 Google Chrome 浏览器内核差异

最近有些Vue3的项目&#xff0c;使用了safari进行测试环境搞开发&#xff0c;发现页面存在不同程序的页面乱码情况&#xff0c;反而google浏览器没问题&#xff0c;下面我们就对比下他们之间的差异点&#xff1a; 日常开发google chrome占多数&#xff1b;现在主流浏览器 Goog…

【零基础学习CAPL】——CAN报文的发送(配合Panel面板单次发送)

&#x1f64b;‍♂️【零基础学习CAPL】系列&#x1f481;‍♂️点击跳转 文章目录 1.概述2.面板创建2.1.新建一个Panel2.2. 在Panel中调出控件窗口2.3.控件添加与配置 3.系统变量创建4.系统变量与Panel绑定5.CAPL脚本实现6.效果 1.概述 使用场景&#xff0c;按下面板按钮同时…

存内计算——助力实现28nm等效7nm功效

算力是数字经济时代的核心生产力&#xff0c;并且近年来需求剧增。而我国当前的算力供给上仍面临巨大的挑战&#xff0c;一方面&#xff0c;国外的高端算力芯片被美国禁售&#xff0c;另一方面&#xff0c;国内的芯片产业仍处于发展阶段[1]。如何获取算力提升&#xff0c;成为当…

力扣hot100 买卖股票的最佳时机 贪心 经典题

Problem: 121. 买卖股票的最佳时机 文章目录 思路复杂度Code 思路 假设今天卖出&#xff0c;那怎么样收益最大呢&#xff1f;之前买入价是最低的 复杂度 ⏰ 时间复杂度: &#xff1a; O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( 1 ) O(1) O(1) Code class Solut…

跟着pink老师前端入门教程-day14+15

2.6 main 主体模块制作 HTML&#xff1a; <div class"w"><div class"main"><!-- 焦点图模块 --><div class"focus"><ul><li><img src"./images/banner_bg.png" alt""></li>…