JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)

目录

DateTimeFormatter

主要方法

用法示例

Period

常见方法

用法示例

Duration

常见方法

用法示例


接下来继续要学习的是JDK 8之后新增的代替SimpleDateFormat的一个API——DateTimeFormatter

同样是用来格式化和解析时间的,与SimpleDateFormat相比较来说,它是线程安全的,也就是多个用户进入到一个系统中,用户可以使用同一个DateTimeFormatter。

DateTimeFormatter

主要方法

方法名说明
public static DateTimeFormatter ofPattern(时间格式)获取格式化器对象
public String format(时间对象)格式化时间

LocalDateTime提供的格式化、解析时间的方法

方法名说明
public String format(DateTimeFormatter formatter)格式化时间
public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)解析时间

用法示例

public class Test {
    public static void main(String[] args){
        //1.创建一个日期时间格式化器对象出来
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");

        //2.对时间进行格式化
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);

        String rs = formatter.format(now);          //正向格式化
        System.out.println(rs);

        //3.格式化时间,还有另一种方案
        String rs2 = now.format(formatter);         //反向格式化
        System.out.println(rs2);

        //4.解析时间:解析时间一般使用LocalDateTime提供的解析方法来解析
        String dateStr = "2029年12月12日 12:12:11";
        LocalDateTime ldt = LocalDateTime.parse(dateStr,formatter);
        System.out.println(ldt);
    }
}

运行结果:

JDK 8 新增的有关时间的API还有两个补充的:Period、Duration

Period

  • 可以用于计算两个LocalDate对象相差的年数、月数、天数。

常见方法

方法名说明
public static Period between(LocalDate start, LocalDate end)传入2个日期对象,得到Period对象
public int getYears()计算隔几年,并返回
public int getMonths()计算隔几个月,年返回
public int getDays()计算隔多少天,并返回

用法示例

public class Test {
    public static void main(String[] args){
        LocalDate start = LocalDate.of(2029,8,10);
        LocalDate end = LocalDate.of(2029,12,15);

        //1.创建Period对象,封装两个日期对象
        Period period = Period.between(start,end);

        //2.通过Period对象获取两个日期对象相差的信息
        System.out.println(period.getYears());
        System.out.println(period.getMonths());
        System.out.println(period.getDays());
    }
}

运行结果:

Duration

  • 可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间。

常见方法

方法名说明
publicstaticDuration between(开始时间对象1,截止时间对象2)传入2个时间对象,得到Duration对象
public long toDays()计算隔多少天,并返回
public long toHours()计算隔多少小时,并返回
public long toMinutes()计算隔多少分,并返回
public long toSeconds()计算隔多少秒,并返回
public long toMillis()计算隔多少毫秒,并返回
public long toNanos()计算隔多少纳秒,并返回

用法示例

public class Test {
    public static void main(String[] args){
        LocalDateTime start = LocalDateTime.of(2025,11,11,11,10,10);
        LocalDateTime end = LocalDateTime.of(2025,11,11,11,11,11);

        //1.得到Duration对象
        Duration duration = Duration.between(start,end);

        //2.获取两个时间对象间隔的信息
        System.out.println(duration.toDays());              //间隔多少天
        System.out.println(duration.toHours());             //间隔多少小时
        System.out.println(duration.toMinutes());           //间隔多少分钟
        System.out.println(duration.toSeconds());           //间隔多少秒
        System.out.println(duration.toMillis());            //间隔多少毫秒
        System.out.println(duration.toNanos());             //间隔多少纳秒

    }
}

运行结果:

关于旧版与新增的时间相关API就全部学完啦~

下一篇开始学习Arrays这个工具类!


END


学习自:黑马程序员——JavaSE课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值