【131天】尚学堂高淇Java300集视频精华笔记(65-66)

第65集:常用类Date类的使用JDk源码分析

Date时间类(java.util.Date)

  1. 在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。

  2. Date()分配一个Date对象,并初始化此对象为当前的日期和时间精确到毫秒。

    public Date() {
            this(System.currentTimeMillis());
        }
  3. Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 

    /**
     * Allocates a <code>Date</code> object and initializes it to
     * represent the specified number of milliseconds since the
     * standard base time known as "the epoch", namely January 1,
     * 1970, 00:00:00 GMT.
     *
     * @param   date   the milliseconds since January 1, 1970, 00:00:00 GMT.
     * @see     java.lang.System#currentTimeMillis()
     */
    
    public Date(long date) {
        fastTime = date;
    }
  4. boolean after(Date when) 测试此日期是否在指定日期之后。

    public boolean after(Date when) {
        return getMillisOf(this) > getMillisOf(when);
    }
  5. boolean before(Date when)  测试此日期是否在指定日期之前。

    public boolean before(Date when) {
        return getMillisOf(this) < getMillisOf(when);
    }
  6. Boolean equals(Object obj) 比较两个日期的相等性。

    public boolean equals(Object obj) {
        return obj instanceof Date && getTime() == ((Date) obj).getTime();
    }
  7. Long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

    public long getTime() {
        return getTimeImpl();
    }
    
    private final long getTimeImpl() {
        if (cdate != null && !cdate.isNormalized()) {
            normalize();
        }
        return fastTime;
    }
  8. void setTime(long time)返回

     public void setTime(long time) {
        fastTime = time;
        cdate = null;
    }
  9. String toString() 把此 Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。 

  10. MAC导入类的快捷键:command+shift+O

  11. 查看API文档大家可以看到很多方法过时了,JDK1.1之前的Date包含了:日期操作、字符串转化成时间对象、时间对象。1.1之后,日期操作使用:Canlendar类来,字符串转化成为时间对象使用DateFormat。

示例代码

public class Test065 {
    public static void main(String[] args){
        Date d = new Date();//得到当前时间的毫秒数
        long a = System.currentTimeMillis();
        System.out.println(d);
        System.out.println(a);
        Date d2 = new Date(1000);
        System.out.println(d2.toString());//自动加了时区
        System.out.println(d2.toGMTString());//标准格林尼治时间,已不建议使用
        d2.setTime(232323423);
        System.out.println(d2.getTime());
        System.out.println(d.getTime()<d2.getTime());//等同于before
        System.out.println(d.before(d2));
        System.out.println(d.getTime()>d2.getTime());//等同于after
        System.out.println(d.after(d2));
        Date date1 = new Date();
        System.out.println(date1.toString());
        long i = date1.getTime();
        System.out.println(i);
        Date date2 = new Date(i-1000);
        Date date3 = new Date(i+1000);
        System.out.println(date1.after(date2));
        System.out.println(date1.before(date2));
        System.out.println(date1.equals(date2));
        System.out.println(date1.after(date3));
        System.out.println(date1.before(date3));
        System.out.println(date1.equals(date3));
        System.out.println(new Date(1000L*60*60*24*365*39L).toString());
    }
}

第66集:常用类DateFormat和SimpleDateFormat时间和字符串的互相转换

  1. DateFormat和SimpleDateFormat类的作用:将时间对象与指定格式的字符串进行互相转化。

  2. DateFormat是一个抽象类,一般使用其子类SimpleDateFormat类。

格式化字符含义

示例代码

package com.test066;
    
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
    
public class Test066 {
    public static void main(String[] args) {
    Date a = new Date(123124124L);
    System.out.println("直接输出Date对象的结果:\t" + a);
    //System.out.println(a.toString());    
    DateFormat b = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String str = b.format(a);
    System.out.println("使用DateFormat类的format方法将Date对象处理成格式化字符串的结果:\t" + str);
    
    String str2 = "1977-7-7";
    DateFormat c = new SimpleDateFormat("yyyy-MM-dd");
    try {
        Date d = c.parse(str2);
        System.out.println("使用DateFormat类的parse方法将格式化字符串处理成Date对象的结果:\t" + d);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
    }
}
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值