java基础之日期时间类

一.获取日期时间(java8以前)

1.基础知识
1秒=1000毫秒
毫秒值的作用:计算2001,01,03-2007,08,11一个有多少天
获取毫秒值(获取当前时间到1970,1,1,00:00的毫秒值)

 public static void main(String [] args)
    {
        System.out.println(System.currentTimeMillis());//获取毫秒值
    }

2.java.util.Date包下Date类
常用方法:

  Date data1=new Date();//返回当前日期时间
        Date date2=new Date(0l);//参数是毫秒值,跟毫秒值得到日期
        long time =data1.getTime();//根据日期得到毫秒值

二.日期时间格式化

new Date () 格式通常不是我们想要的
1.java.text.DateFormat包下DateFormat类
DateFormat类是日期时间格式化子类的抽象类继承Format
子类:SimpleDateFormat类
作用:格式化(Date->String),解析(String->Date)

   SimpleDateFormat sdf=new SimpleDateFormat("yyyy年mm月dd日  hh时mm分ss秒");
        Date date1=new Date();
        //格式化
        String date2=sdf.format(date1);
        //解析
        Date d2=sdf.parse("2022年02月17日  08时02分30秒");//parse()方法会抛出parseException异常(参数格式和创建SimpleDateFormat格式不一样则抛出此异常

日历类

Java.util.Calendar包下Calendar类
Calendar类是抽象类

  Calendar c= Calendar.getInstance();//Calendar是抽象类,不能直接创建,(多态原理)
        int year =c.get(Calendar.YEAR);//获取日历字段具体值
        c.set(Calendar.MONTH,1);//设置单个日历字段值
        c.set(2001,10,1);//同时设置年月日
        c.add(Calendar.DATE,8);//增加或减少字段值(正数增加,负数减少)
        Date date1=c.getTime();//转换成Date对象


以上都是java8之前的类,Java8之后提供了新的类:LocalTime,LocalDateTime,LocaDate,位于java.time包下
注意SimpleDateFormat是线程不安全的,java8新增的3个类是线程安全的

日期类
java.time包下

Java8的日期时间类

已经有了Date包为什们还要使用java8time包呢?

  • java.util.Datejava.util.Calend类是线程不安全的,在实际开发过程中可能会需要保证这个日期是线程安全的
  • java.time包是线程安全的,不需要对日期时间做额外的操作
  • 老版本的日期时间类对时间的计算是比较复杂的,例如:现在据某个日期(1995年12月5号)过了多少天
    老板版代码
//获取当前时间
Date date=new Date();
//当前时间据1970年1月1日过了多少毫秒
long s=date.getTime();
//1995年12月5号据1970年1月1日过了多少毫秒
Calendar c=Calendar.getInstance();
c.set(1995,12,5);
Date rdate=c.getTime();
long s2=rdate.getTime();
//s-s2然后将结果从毫秒换算成天
(s-s2)/1000/60/60/24;

新版本代码

long dav=ChronoUnit.DAYS.between(LocalDate.of(),LocalDate.now());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值