1. 程式人生 > >Java基礎18-日期類和日歷類

Java基礎18-日期類和日歷類

員工 con 年月日 也有 color 發現 time uri span

一、java.util.Date日期類

private Integer age;//員工年齡
private String hireDate;//入職時間
在系統中存儲的是員工的基本信息,包括了員工的年齡,此時使用Integer/int類型來表示年齡是不合理的
難道每年都得修改系統中員工的年齡遞增1?

1.類 Date 表示特定的瞬間,精確到毫秒。

技術分享圖片技術分享圖片

Date類中有一個方法可以返回自1970年以來到現在的毫秒值,這就是getTime方法,是一個long類型的值

技術分享圖片技術分享圖片

Date類中有很多過時的方法,但這些過時的方法中也有比較好用的,比如下邊這個

技術分享圖片技術分享圖片這個表示形式比較符合我們中國人的習慣

二、DateFormat格式化日期

格式化: Date類型對象--->String類型
解析:String類型時間---->Object類型

1.格式化日期類中的方法

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

2.格式化:Date類型對象--->String類型

技術分享圖片技術分享圖片

3.解析:String類型時間---->Object類型

技術分享圖片技術分享圖片

4.自定義日期模式

技術分享圖片技術分享圖片

三、日歷類

1.常用方法

技術分享圖片

我們創建一個日歷對象

技術分享圖片技術分享圖片

發現輸出了一大堆不是很好看懂的內容,這可怎麽辦呢?

2.這就要用到get方法,獲取時間字段值

技術分享圖片技術分享圖片

3.如何添加和設置日期呢?

這就用到add和set方法

技術分享圖片100天後是幾月幾號呢?技術分享圖片

技術分享圖片技術分享圖片

4.日歷類也可以轉化為日期

技術分享圖片技術分享圖片

註意:Calendar類中,月份的表示是以

0-11代表1-12月。

案例1:

//計算起止時間
//查詢最近一周的信息,如何表示最近這一周

Date current =new Date();
        //把當前時間作為日歷的時間
        Calendar c3=Calendar.getInstance();
        c3.setTime(current);
        //把日增加1天,再把時分秒設置為0
        c3.add(Calendar.DAY_OF_MONTH, 1);
        c3.set(Calendar.HOUR_OF_DAY, 0);//時設置成0
        c3.set(Calendar.MINUTE, 0);//
分設置成0 c3.set(Calendar.SECOND, 0);//秒設置成0 Date endTime=c3.getTime(); c3.add(Calendar.DAY_OF_MONTH, -7); Date beginTime=c3.getTime(); System.out.println("開始時間="+beginTime.toLocaleString()); System.out.println("結束時間="+endTime.toLocaleString());

技術分享圖片

案例2:獲取自己出生到現在的天數

public static void main(String[] args){
    Calendar my = Calendar.getInstance();
    Calendar c = Calendar.getInstance();
    //設置出生年月日 1995-05-10
    my.set(Calendar.YEAR, 1995);
    my.set(Calendar.MONTH, 4);
    my.set(Calendar.DATE, 10);
    //獲取時間中的天數
    int day = c.get(Calendar.DATE);
    int myDay = my.get(Calendar.DATE);
    System.out.println(day - myDay);
}

案例3:求出距離某年某月某日還有多少天

public static void main(String[] args){
    Calendar my = Calendar.getInstance();
    Calendar c = Calendar.getInstance();
    //設置年月日 2020-01-01
    my.set(Calendar.YEAR, 2020);
    my.set(Calendar.MONTH, 0);
    my.set(Calendar.DATE, 1);
    //獲取時間中的天數
    int day = c.get(Calendar.DATE);
    int myDay = my.get(Calendar.DATE);
    System.out.println(myDay - day);
}

public static void main(String[] args){

Calendar my = Calendar.getInstance();

Calendar c = Calendar.getInstance();

//設置年月日 2020-01-01

my.set(Calendar.YEAR, 2020);

my.set(Calendar.MONTH, 0);

my.set(Calendar.DATE, 1);

//獲取時間中的天數

int day = c.get(Calendar.DATE);

int myDay = my.get(Calendar.DATE);

System.out.println(myDay - day);

}

Java基礎18-日期類和日歷類