java中的日期时间类Date和SimpleDateFormat

 更新时间:2023年09月06日 08:54:33   作者:CodeRanger  
这篇文章主要介绍了java中的日期时间类Date和SimpleDateFormat,Date类的对象在Java中代表的是当前所在系统的此刻日期时间,说白了就是你计算机上现实的时间,需要的朋友可以参考下

Date类

概述

Date类的对象在Java中代表的是当前所在系统的此刻日期时间,说白了就是你计算机上现实的时间。

基本用法

1,直接输出当前日期:

public class Test {
    public static void main(String[] args){
        Date d = new Date();
        System.out.println(d);
    }
}

结果:

Tue Oct 18 19:12:33 CST 2022

2,获取时间毫秒值

这里说明一下是从1970年1月1日00:00到现在的毫秒数。嗯?要毫秒值干什么?计算天数!

因为java没有直接提供天数的计算方法,所以你只能用毫秒数来计算。

public class Test {
    public static void main(String[] args){
//        Date d = new Date();
//        System.out.println(d);
        long time = d.getTime();
        System.out.println(time);
    }
}

结果:

1666092116318

练习:

当前时间加上 1小时121秒 之后的时间是多少。

这里有个知识点,把毫秒类型的数据当参数传进去会自动转成日期类型的数据。

public class Test {
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d);
        long time = d.getTime();
        time += (60 * 60 + 121) * 1000;
        Date d2 = new Date(time);
        System.out.println(d2);
    }
}

结果:

Tue Oct 18 19:30:31 CST 2022

Tue Oct 18 20:32:32 CST 2022

SimpleDateFormat类

概念

就是简单日期格式化类。

上面讲的Date类输出的日期格式是不是过于复杂且不符合我们日常使用的规范?

所以出现了SimpleDateFormat类,使日期输出更简洁。

用法

和这里要讲的就是构造器里的参数形式:

SimpleDateFormat 对象名 = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。注意:有的格式大写,有的格式小写

例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

我们还可以输出周几,上午下午,只需在后面加上 "EEE a" 即可。

public class Test {
    public static void main(String[] args) throws ParseException {
        String dateStr = "2021-08-06  11:11:11";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
        Date d = sdf.parse(dateStr);
        long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000;
        System.out.println(sdf.format(time));
    }
}

结果:

2022年10月18日  19:54:47  星期二 下午

案例:

给定某个时间,输出经过多少时间之后的时间。

首先你得到的是字符串形式的时间格式,我们要先解析成日期格式,例如毫秒值或者日期对象。

需要先转成标准日期格式,再调用parse方法改成毫秒。这里有一点要说明,你给出的时间的格式要符合java里的日期格式是吧,比如你给的时间是2022年,你不能只写个22。

还有一点,我们要改的时间毫秒数可能很大马,所以最好转成long类型进行计算。

public class Test {
    public static void main(String[] args) throws ParseException {
        String dateStr = "2021-08-06  11:11:11";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
        Date d = sdf.parse(dateStr);
        long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000;
        System.out.println(sdf.format(time));
    }
}

结果:

2021-08-09  02:00:17

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

相关文章

  • SpringBoot多线程与任务调度总结

    SpringBoot多线程与任务调度总结

    多线程与任务调度是java开发中必须掌握的技能,本文主要介绍了SpringBoot多线程与任务调度总结,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • javamail实现注册激活邮件

    javamail实现注册激活邮件

    这篇文章主要为大家详细介绍了javamail实现注册激活邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Spring中基于xml的声明式事务示例详解

    Spring中基于xml的声明式事务示例详解

    这篇文章主要介绍了Spring之基于xml的声明式事务,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • java中关于控件JTextArea的几个方法

    java中关于控件JTextArea的几个方法

    这篇文章主要介绍了java中关于控件JTextArea的几个方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 解决OOM:JVM内存不足问题

    解决OOM:JVM内存不足问题

    这篇文章主要介绍了解决OOM:JVM内存不足问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Struts2源码分析之ParametersInterceptor拦截器

    Struts2源码分析之ParametersInterceptor拦截器

    这篇文章主要介绍了Struts2源码分析之ParametersInterceptor拦截器,ParametersInterceptor拦截器其主要功能是把ActionContext中的请求参数设置到ValueStack中,,需要的朋友可以参考下
    2019-06-06
  • form表单数据通过@RequestBody解析成java实体类的实现过程

    form表单数据通过@RequestBody解析成java实体类的实现过程

    解决@RequestBody请求无法接收前端数据问题:前端通过axios提交数据,后端使用fastJSON解析时出现NULL,通过在实体类上添加@JSONField注解指定属性对应关系,可以成功接收数据
    2025-12-12
  • 如何使用Idea中的 Deployment 实现打包自动部署

    如何使用Idea中的 Deployment 实现打包自动部署

    这篇文章主要介绍了使用Idea中的 Deployment 实现打包自动部署,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • SpringBoot3+SpringSecurity6前后端分离的项目实践

    SpringBoot3+SpringSecurity6前后端分离的项目实践

    SpringSecurity6 的用法和以前版本的有较大差别,本文主要介绍了SpringBoot3+SpringSecurity6前后端分离的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • SpringBoot结合Redis实现缓存

    SpringBoot结合Redis实现缓存

    本文主要介绍了SpringBoot结合Redis实现缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论