日期类

Date类两种构造函数、getTime方法

Calendar类是一个抽象类,无法直接实例化,只能通过getInstance方法获得当前时间的实例。

Calendar类的方法:get、set、add

Calendar类的模式:lenient和non-lenient,lenient模式会自动进位,在某些情况下非常好用,比如计算某个日期后10天的日期,不用考虑日超过范围的问题。

Date类的两种构造函数Date表示特定的瞬间,精确到毫秒。

1、public Date()——第一个构造函数使用当前日期和时间来初始化对象

代码;获取当前日期时间

import java.util.Date;

public class date {
    @Override
    public String toString() {
        return "dow mon dd hh:mm:ss zzz yyyy";
    }

    public static void main(String[] args) {
    Date date = new Date();
        System.out.println(date.toString());
    }
}

结果:

心得体会:

把此 Date 对象转换为以下形式的 Stringdow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)

2、Date(long millisec)-第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。

语法:

public Date(long date)——根据给定的毫秒值创建日期对象。

代码:

import java.util.Date;

public class date1 {
    public static void main(String[] args) {
        long time = System.currentTimeMillis();
        Date date = new Date(time);
        System.out.println(date);
    }
}

结果:

getTime方法日期转毫秒值

语法:

public long getTime()——日期转毫秒值

通过getTime方法可以将一个日期类型转换为long类型的毫秒值

返回值:

返回自 1970 1 1 00:00:00 GMT 以来此 Date 对象表示的毫秒数

代码:

import java.util.Date;

public class getTime {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println("1970-1-1到今天所过的秒数:"+date.getTime());
    }
}

结果:

心得体会:

可以计算到今天的所有毫秒数。

setTime 方法:毫秒值转日期

语法:

public void setTime(long time)——毫秒值转日期

返回值:

用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期

代码:

import java.util.Date;

public class setTime {
    public static void main(String[] args) {
        //long time = System.currentTimeMillis();//确定今天的时间
        
Date date = new Date(100000000);
        //date.setTime(time);
        
System.out.println(date);

    }
}

结果:

before(Date when)方法:

语法:

public boolean before(Date when)——测试此日期是否在指定日期之前,当且仅当此Date对象表示的瞬间比when表示的瞬间早,才返回true;否则返回false

代码:

import java.util.Date;
//测试此日期是否在指定日期之前
public class before {
    public static void main(String[] args) {
        Date date1 = new Date(1000);
        Date date2 = new Date(2000);
        System.out.println(date1.before(date2));
    }
}

结果:

after(Date when)方法:

语法:

public boolean after(Date when)——测试此日期是否在指定日期之后,当且仅当此Date对象表示的瞬间比when表示的瞬间晚,才返回true;否则返回false

代码:

import java.util.Date;
//测试此日期是否在指定日期之后
public class after {
    public static void main(String[] args) {
        Date date1 = new Date(1000);
        Date date2 = new Date(2000);
        System.out.println(date1.after(date2));
    }
}

结果:

compareTo(Date when)方法:

语法:

public int compareTo(Date anotherDate)——比较两个日期的顺序。

如果参数Date等于此Date,则返回值0;如果此DateDate参数之前,则返回小于0的值;如果此DateDate参数之后,则返回大于0的值。

代码;

import java.util.Date;
//比较两个日期的顺序
public class compareTo {
    public static void main(String[] args) {
        Date date1 = new Date(1000);
        Date date2 = new Date(2000);
        System.out.println(date1.compareTo(date2));
    }
}

结果:

Calendar类的方法get

代码:

import java.util.Calendar;
import java.util.Date;

public class getTime {
    public static void main(String[] args) {
        long TimeNow = System.currentTimeMillis();
        System.out.println("此时时间:"+TimeNow);
        Date date = new Date(TimeNow);
        System.out.println("转化后的时间:"+date);
        Calendar c = Calendar.getInstance();
        System.out.println("获得此时时间:"+c.getTime());
    }
}

结果:

Calendar类的方法set

语法:

public final void set(int year,int month,int date);

参数:

year:年 month:月 date:日 

代码:

import java.util.Calendar;

public class setTime {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.set(2002,5,20);//c的年月日设置为2002520

System.out.println(c.getTime());
    }
}

结果:

Calendar类的方法add

根据日历的规则,为给定的日历字段添加或减去指定的时间量

语法:

代码:

import java.util.Calendar;

public class add {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.DATE,1);//c对象的日期加上1,也就是1天后的日期,其他的数值会被重新计算
        System.out.println(c.getTime());
        c.add(Calendar.DATE,-1);//c对象的日期加上-1,也就是1天前的日期,其他的数值会被重新计算
        System.out.println(c.getTime());
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;//返回值时从0-11,所以要+1
        int date = c.get(Calendar.DATE);
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);
        int second = c.get(Calendar.SECOND);
        int day = c.get(Calendar.DAY_OF_WEEK);
        System.out.printf("%d年,",year);
        System.out.printf("%d月,",month);
        System.out.printf("%d日,",date);
        System.out.printf("%d时,",hour);
        System.out.printf("%d分,",minute);
        System.out.printf("%d秒,",second);
        System.out.printf("星期%d",day);//1代表星期日、2代表星期13代表星期二,以此类推)
    }
}

结果:

猜你喜欢

转载自blog.csdn.net/Zhan_LV/article/details/81016282