Java中Date时间类的使用方法举例

 更新时间:2023年08月30日 11:30:48   作者:webliuq  
这篇文章主要给大家介绍了关于Java中Date时间类的使用方法,在java开发中,很多字段是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 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat):

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

运行结果:

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

总结

到此这篇关于Java中Date时间类的使用方法的文章就介绍到这了,更多相关Java Date时间类使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 调用java.lang.Runtime.exec的正确姿势分享

    调用java.lang.Runtime.exec的正确姿势分享

    这篇文章主要介绍了调用java.lang.Runtime.exec的正确姿势,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 深入理解Maven的坐标与依赖

    深入理解Maven的坐标与依赖

    这篇文章主要介绍了深入理解Maven的坐标与依赖,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Java 生产者/消费者问题实例详解

    Java 生产者/消费者问题实例详解

    这篇文章主要实例分析了java中生产者消费者问题的方法,需要的朋友可以可以参考下
    2017-04-04
  • 程序员最喜欢的ThreadLocal使用姿势

    程序员最喜欢的ThreadLocal使用姿势

    ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些,下面这篇文章主要给大家介绍了程序员最喜欢的ThreadLocal使用姿势,需要的朋友可以参考下
    2022-02-02
  • SpringBoot返回html界面的使用示例

    SpringBoot返回html界面的使用示例

    本文主要介绍了SpringBoot返回html界面的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • 浅析java程序入口main()方法

    浅析java程序入口main()方法

    这篇文章主要介绍了浅析java程序入口main()方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Java虚拟机内存分配与回收策略问题精细解读

    Java虚拟机内存分配与回收策略问题精细解读

    Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存,本文让我们来详细了解
    2021-11-11
  • java设计模式之浅谈适配器模式

    java设计模式之浅谈适配器模式

    我们现实生活中的适配器不少.例如,我们使用存储卡适配器连接存储卡和一个计算机,因为计算机仅支持一种类型的存储卡和我们的卡不与计算机兼容,适配器是两种不相容的实体之间的转换器,适配器模式是一种结构模式.本文就带大家了解一下java适配器模式,需要的朋友可以参考下
    2021-06-06
  • 详解JavaScript中的函数声明和函数表达式

    详解JavaScript中的函数声明和函数表达式

    这篇文章主要介绍了详解JavaScript中的函数声明和函数表达式,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • Servlet实现多文件上传功能

    Servlet实现多文件上传功能

    这篇文章主要为大家详细介绍了Servlet实现文件上传功能,还可以实现Servlet多文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论