java.util.Date类

本文介绍了Java中的Date类,主要用于表示特定时刻,精度为毫秒。讨论了Date类的toString方法,强调了getTime方法用于获取自1970年1月1日以来的毫秒数,以及如何进行日期的比较操作,如after和before方法。此外,提到了构造Date对象的常见方式。

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


一、概述

Date类表示特定的时刻,精度为毫秒。
在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串。 不推荐使用Date中的相应方法。

1.1、重写toString

Date类的toString已被重写
“EEE MMM dd HH:mm:ss zzz yyyy”

public String toString() {
        // "EEE MMM dd HH:mm:ss zzz yyyy";
        BaseCalendar.Date date = normalize();
        StringBuilder sb = new StringBuilder(28);
        int index = date.getDayOfWeek();
        if (index == BaseCalendar.SUNDAY) {
            index = 8;
        }
        convertToAbbr(sb, wtb[index]).append(' ');                        // EEE
        convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' ');  // MMM
        CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd

        CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':');   // HH
        CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
        CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss
        TimeZone zi = date.getZone();
        if (zi != null) {
            sb.append(zi.getDisplayName(date.isDaylightTime(), TimeZone.SHORT, Locale.US)); // zzz
        } else {
            sb.append("GMT");
        }
        sb.append(' ').append(date.getYear());  // yyyy
        return sb.toString();
    }

常用方法

2.1、getTime方法

long getTime()
返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。

public static void main(String[] args) {
        Calendar cl = Calendar.getInstance();
        Date d = new Date();
        System.out.println(d.getTime());
    }

输出结果:1607941290873

一天的毫秒数:(24 * 60 * 60 * 1000)

时间的比较
boolean after​(Date when)
测试此日期是否在指定日期之后。
boolean before​(Date when)
测试此日期是否在指定日期之前。


常用构造方法

Date()
分配 Date对象并对其进行初始化,使其表示当前时间,测量 Date到毫秒。
Date​(long date)
分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值