Loading... # 1、Date > java.util.Date:表示特定的瞬间,精确到毫秒。 ## 1.1、构造方法 `public Date()` :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。当前时间。 `public Date(long date)` :分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元 (epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。将毫秒值转换为日期。 【注意】 在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行 了覆盖重写,所以结果为指定格式的字符串。 ## 1.2、成员方法 `public long getTime()` :将日期对象转换为对应时间的毫秒值。 # 2、DateFormat > java.text.DateFormat:是日期/时间格式化子类的抽象类。可以进行日期和文本之间的相互转换,即可以在Date对象和String对象之间进行相互转换。 > > * 格式化:按照指定的格式,从Date对象转换为String对象。 > * 解析:按照指定的格式,从String对象转换为Date对象。 ## 2.1、SimpleDateFormat > java.text.SimpleDateFormat:是DateFormat的子类。类需要一个 模式(格式)来指定格式化或解析的标准。 ## 2.2、构造方法 `public SimpleDateFormat(String pattern)` :用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。pattern是一个字符串,代表日期时间的自定义格式。 ## 2.3、格式规则 | 含义 | 年 | 月 | 日 | 时 | 分 | 秒 | | ---------------------- | ---- | ---- | ---- | ---- | ---- | ---- | | 标识字母(区分大小写) | y | M | d | H | m | s | ## 2.4、成员方法 `public String format(Date date)` :将Date对象格式化为字符串。 `public Date parse(String source)` :将字符串解析为Date对象。该方法声明了一个ParseException异常。 ## 2.5、练习 使用日期时间相关的API,计算出一个人已经出生了多少天。 ```java has-numbering public static void main(String[] args) throws ParseException { System.out.println("请输入出生日期,格式:yyyy-MM-dd"); // 键盘输入出生日期 String birthdayStr = new Scanner(System.in).next(); // 创建SimpleDateFormat对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 将出生日期字符串转换为Date对象 Date birthdayDate = sdf.parse(birthdayStr); // 获取今天的Date对象 Date todayDate = new Date(); // 将两个日期转换为时间毫秒值 long birthdaySecond = birthdayDate.getTime(); long todaySecond = todayDate.getTime(); // 计算出生的毫秒值 long second = todaySecond - birthdaySecond; if (second < 0) { System.out.println("对不起!您还没有出生!"); } else { System.out.println("已经出生了 " + second / 1000 / 60 / 60 / 24 + " 天!"); } } 123456789101112131415161718192021 ``` # 3、Calendar > java.util.Calendar:日历类,该类将所有可能用到的时间信息封装 为静态成员变量,方便获取。是抽象类,通过静态方法创建,返回子类对象。 ## 3.1、静态方法 `public static Calendar getInstance()` :使用默认时区和语言环境获得一个日历。 ## 3.2、静态成员变量 | 字段值 | 含义 | | -------------- | --------------------------------------- | | YEAR | 年 | | MONTH | 月(从0开始,可以+1使用) | | DAY_OF_MONTH | 月中的天(几号) | | HOUR | 时(12小时制) | | HOUR_OF_DAY | 时(24小时制) | | MINUTE | 分 | | SECOND | 秒 | | DAY_OF_WEEK | 周中的天(周几,周日为1,可以-1使用) | ## 3.3、成员方法 `public int get(int field)` :返回给定日历字段的值 `public void set(int value, int value)` :将给定的日历字段设置为给定值 `public abstract void add(int field, int amount)` :根据日历的规则,为给定的日历字段添加或减去指定的时间量。 `public Date getTime()` :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。 > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2021 年 10 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏