JDK中的日期时间API

本文详细介绍了JDK1.8之前的日期时间API,包括System.currentTimeMills(),Date类,Sql.Date类,以及Calendar类的使用。接着重点讲解了JDK1.8引入的新日期时间API,如LocalDate,LocalTime,LocalDateTime,Instant以及DateTimeFormatter。新API解决了旧版的可变性、偏移性、格式化等问题,提供了更丰富的包和线程安全的类型。
摘要由CSDN通过智能技术生成

一、JDK1.8之前的日期时间API

  1. 获取系统当前时间System类中的currentTimeMills()

返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差

2.java.util.Date类与java.sql.Date类

1.两个构造器的使用
构造器一:Date():创建一个对应当前时间的Date对象
构造器二:创建指定毫秒数的date对象

2.两个方法的使用
>toString():显示当前的年、月、日、时、分、秒。
>getTime(): 获取当前Date对象对应的时间戳(毫秒数)。

3.java.sql.Date对应着数据库中的日期类型的变量
>如何实例化
>如何将java.util对象转换成java.sql.Date对象
sql.Date —>util.Date对象SimpleDateFormat的使用:
SimpleDateFormat对日期Date类的格式化和解析
1.两个操作
1.1 格式化 :日期 —> 字符串
1.2 解析 :格式化的逆过程,字符串 —> 日期

2.SimpleDateFormat的实例化:new + 构造器

 //***************按照指定的方式格式化和解析:调用带参的构造器*******************
//        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");//Sun Jan 02 20:37:00 CST 2022
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//2022-01-02 08:51:12
        //格式化
        String format1 = sdf1.format(date);
        System.out.println(format1);
        //解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数实现)
        //否则,抛异常
        Date date2 = sdf1.parse("2023-01-02 08:51:12");
        System.out.println(date2);

小练习 :

/*
    练习一:字符串"2020-09-08"转换为java.sql.Date

    练习二:"三天打鱼两天晒网" 1990-01-01

    举例:2020-09-08 ? 总天数

    总天数 % 5 ==1,2,3 :打渔
    总天数 % 5 ==4,0 :晒网

    总天数的计算?
    方式一:(date2.getTime() - date1.getTime())/(1000*60*60*24) + 1
    方式二:1990-01-01 ---> 2019-12-31 + 2020-01-01 ---> 2020-09-08
     */
    @Test
    public void testExer() throws ParseException {
   
        String birth="2020-09-08";

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyy-MM-dd");
        Date date = sdf1.parse(birth);
//        System.out.println(date);

        java.sql.Date birthDate = new java.sql.Date(date.getTime());
        System.out.println(birthDate);
    }

4.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值