Java 8 的日期、时间类

本文介绍了 Java 中日期和时间处理相关内容。包括 Date 类,但其存在不足,建议少用;Calender 工具类,是抽象类,可与 Date 自由转换,还介绍了其方法、注意点及容错性设置;还提到 set() 方法修改延迟,以及 Java 8 新增的 java.time 包及常用类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文内容包括:

  1. date 类
  2. calender 类
  3. java 8 新增的日期、时间包

1. Date 类

Date 类提供了 6 个构造器,4 个已经不能使用,剩下两个如下:
在这里插入图片描述
Date 对象的大部分方法也不能使用,只剩下为数不多的几个:
在这里插入图片描述在这里插入图片描述
下面程序示范了 Date 类的用法:
在这里插入图片描述
总的来说,Date 类比较糟糕,尽量避免使用,如果要对时间进行处理,可使用 Calender 工具类。

2. Calender 工具类

Calender 是一个抽象类,用于表示日历。其本身不能直接实例化,程序只能创建 Calender 子类的实例。因此,具体使用中,可以创建自己的 Calender 子类,将它作为 Calender 对象使用(即多态)。

为统一计时,最通用的日历为: Gregorian Calender 。
在这里插入图片描述
Calender 和 Date 都是表示日期的工具类,它们可以直接自由转换:
在这里插入图片描述
Calender 提供了大量访问、修改日期时间的方法,常用的如下:
在这里插入图片描述
在这里插入图片描述
上面很多方法都需要一个 int 类型的 field 参数,field 是 Calender 类的类变量,如Calender.YEAR、Calender.MONTH等,下面程序示范 Calender 类的常规用法:
在这里插入图片描述
上面程序使用了静态导入,导入了Calender 类里的所有类变量,因此可以直接使用 YEAR、MONTH等变量。

Calender 有以下几个注意点:

  1. add 和 roll 的区别
    add用于改变Calender 的特定字段的值。
    add(int field,int amount)有如下两条规则:
    在这里插入图片描述
    roll() 的规则与 add() 的处理规则不同,当被修饰的字段超出它允许的范围时,上一级字段不会增大。
    在这里插入图片描述
    下面一段处理与 add() 类似:
    在这里插入图片描述
  2. 设置Calender 的容错性
    调用Calender 对象的 set() 时,可能传入不合法的参数,比如 MONTH 传入 13,下面程序演示:
    在这里插入图片描述
    在这里插入图片描述
    即通过 setLenient() 设置了容错性。
    Calender 有两种解释日历字段的模式:lenient 模式和 non-lenient 模式:
    在这里插入图片描述

3. set()方法修改延迟

在这里插入图片描述
下面程序演示了 set() 方法延迟修改的效果:
在这里插入图片描述
在这里插入图片描述

3. Java 8 新增的日期、时间包

Java 8 新增了一个 java.time 包,包含如下常用类:
在这里插入图片描述在这里插入图片描述
下面程序示范这些类的用法:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值