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 整合 RocketMQ 收发消息的配置过程

    Springboot 整合 RocketMQ 收发消息的配置过程

    这篇文章主要介绍了Springboot 整合 RocketMQ 收发消息,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java的深拷贝与浅拷贝的几种实现方式

    Java的深拷贝与浅拷贝的几种实现方式

    这篇文章主要介绍了Java的深拷贝与浅拷贝的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java实现象棋算法的示例代码

    Java实现象棋算法的示例代码

    象棋算法包括搜索算法、评估函数和剪枝算法,本文主要介绍了Java实现象棋算法的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Java消息队列RabbitMQ入门详解

    Java消息队列RabbitMQ入门详解

    这篇文章主要介绍了Java消息队列RabbitMQ入门详解,RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议 来实现,AMQP的主要特征是面向消息、队列、路由(包括点对点和发布 /订阅)、可靠性、安全,需要的朋友可以参考下
    2023-07-07
  • java获取客服端信息的方法(系统,浏览器等)

    java获取客服端信息的方法(系统,浏览器等)

    下面小编就为大家带来一篇java获取客服端信息的方法(系统,浏览器等)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • springboot自动装配之@ComponentScan使用方式

    springboot自动装配之@ComponentScan使用方式

    @componentScan注解用于扫描指定路径下的组件,并自动将它们注册为Spring Bean,该注解支持多种过滤规则,可以自定义扫描过滤规则,Spring Boot通过ConfigurationClassPostProcessor处理@ComponentScan注解,并在启动时创建和注册BeanDefinition对象
    2025-01-01
  • 详解如何在Java中创建Excel迷你图

    详解如何在Java中创建Excel迷你图

    迷你图是一种简洁而有效的数据可视化方式,常用于展示趋势和变化,通常被用于数据仪表盘、报告和展示中,以便在有限的空间内展示多个数据集的趋势,今天小编为大家介绍如何在Java中创建Excel迷你图,需要的朋友可以参考下
    2023-10-10
  • Java多线程之读写锁分离设计模式

    Java多线程之读写锁分离设计模式

    这篇文章主要介绍了Java多线程读写锁分离设计模式,主要利用Java到吗完成read read 并行化、read write 不允许、write write 不允许几项任务,需要的朋友可以参考一下
    2021-10-10
  • Maven中利用assembly插件打包jar包

    Maven中利用assembly插件打包jar包

    本文详细讲解了Maven中利用assembly插件打包jar包的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock详解

    Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock详解

    这篇文章主要介绍了Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock详解,读写锁:一个资源能够被多个读线程访问,或者被一个写线程访问但是不能同时存在读写线程,需要的朋友可以参考下
    2024-01-01

最新评论