文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中Date时间类的使用

2023-09-01 11:27

关注

目录

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

        一)、Date对象实例化

        二)设置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对象指定日期 :

实例化对象时设置时间:

        要想在实例化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);

运行结果展示:

使用格式化工具进行时间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 %

 输出结果展示:

 

方法

描述
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));

运行结果:

 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));

 运行结果:

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));

 运行结果:

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());

运行结果:

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对象的结果没有任何差异,因此在使用时我们很少使用。

来源地址:https://blog.csdn.net/LiuQQ567/article/details/131214589

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯