Java扩展之part12 有关时间的API(Date类、Calender 日历)

时间API

Date类

  • 创建一个Date类的对象

Date d=new Dtae();

获取时间对象

d.getTime();

System.currentTimeMillis(); //时间毫秒值

SimpleDateFormat(); //格式化这个日期对象

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss EEE a”);

//开始格式化日期对象成为喜欢的字符串形式

String rs=sdf.format(d);

rs.parse()//解析文本以字符串解析为时间

例题:

请计算2021年08月06日11点11分11秒,往后走2天14小时49分06秒后的时间是多少?

  1. 把字符串时间拿到程序中央

    • String datestr="2021年08月06日 11:11:11";
      
  2. 把字符串时间解析成日期对象(本节的重点):形式必须与被解析时间的形式完全一样,否则运行时解析报错!

    • SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
      
    • Data d=sdf.parse(datastr);
      
  3. 往后走2天14小时49分06秒

    • long time =d.getTime()+(2L*24*60*60+49*60+6)*1000;
      
  4. 格式化这个时间毫秒值就是结果

    • System.out.printfln(sdf.format(time));
      

Calender 日历

  1. 拿到系统此刻日历对象

    • Calender cal=Calender.getInstance();
      
  2. 获取日历的信息,取日期中的某个字段信息

    • int year =cal.get(Calender.YEAR);
      int month=cal.get(Calender.MONTH)+1;
      
  3. 修改日历的信息

    • cal.set(calender.HOUR,12);
      
  4. 为某个字段增加/减少指定的值

    • //64天后是什么时间

    • cal.add(calender.DAY_OF_YEAR,64);
      
  5. 拿到此刻日期对象

    • Date d=cal.getTime();
      
  6. 拿到此刻时间毫秒值

    • long time=cal.getTimeInMills();
      

除此之外JDK8又新增日期类

LocalDate:不包括具体时间的日期

LocalTime:不包括日期的时间

LocalDateTime:包含了日期及时间

Instant:时间戳

DateTimeFormatter:时间的格式化和解析

Duration:计算两个时间间隔

Period:计算两个日期间隔

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值