Java日期和時間

Java 日期和時間

 

Date類

Date 類是在JDK 1.0 的時候提供的,到如今能夠說是歷史很是悠久了,其中有不少方法都已經棄用。java

構造函數
//這樣new出來的表明的是當前的時間
Date date = new Date();
//1970-1-1 00:00:00以來通過的毫秒數)來生成Date對象.
Date date = new Date(long date);
經常使用方法
/**
 * 獲取當前的系統時間
 */
private void getSystemTime() {
    Date date = new Date(1000);
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String time = format.format(date);
    System.out.println(time);
}

/**
 * 判斷date是否在一個date以後
 */
private void after() {
    Date date = new Date();
    Date checkDate = new Date(System.currentTimeMillis() + 1000);
    System.out.println(date.after(checkDate));
}

/**
 * 判斷date是否在一個date以前
 */
private void before() {
    Date date = new Date();
    Date checkDate = new Date(System.currentTimeMillis() + 1000);
    System.out.println(date.before(checkDate));
}

Calendar

由於Calendar有不少的缺陷,而且也比較老舊,JDK又提供了java.util.Calendar 類,Calendar類是一個抽象類,沒有具體實現,他是一個全部日曆的模板。ide

獲取Calendar實例
//獲取公曆日曆
Calendar calendar = Calendar.getInstance();
經常使用方法
//能夠進行時間的加減
calendar.add(Calendar.DAY_OF_YEAR, 1);
//獲取不一樣的時間的值
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
將字符串轉化爲時間
/**
 * 將字符串轉化爲時間
 */
private void convertStringToDate() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //被轉換的時間的格式必需要與DateFormat解析的時間格式相同
    String strDate = "2018-9-19 08:11:11";
    try {
        Date date = dateFormat.parse(strDate);
        String value = dateFormat.format(date);
        System.out.println(value);
    } catch (ParseException e) {
        e.printStackTrace();
    }
}

計算兩個時間之間的差值

經過獲取總的毫秒數,而後進行換算函數

/**
 * 計算兩個時間之間的差值
 */
private void getTimeSpan() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        Date dateFirst = dateFormat.parse("2018-10-11 09:11:11");
        Date dateSecond = dateFormat.parse("2018-10-10 07:11:10");
        long diff = dateSecond.getTime() - dateFirst.getTime();
        diff = diff / 1000;
        //
        long second = diff % 60;
        long minute = diff % 3600 / 60;
        long hour = diff % (3600 * 24) / 3600;
        long day = diff / (3600 * 24);
        String value = 
        String.format("%S 與 %S 之間相差了 %d days %d hours %d minutes %d second", 
                        dateFormat.format(dateSecond),
                        dateFormat.format(dateFirst),
                        day, hour,
                        minute,
                        second);
        System.out.println(value);
      //2018-10-10 07:11:10 與 2018-10-11 09:11:11 之間相差了 -1 days -2 hours 0 minutes -1 second
    } catch (Exception e) {
        e.printStackTrace();
    }
}

除非特殊聲明不然,本博客文章均屬 魯迅認識的那隻猹 原創,未經許可禁止轉載,不然將保留追究法律責任的權利。學習

若是本博客損害了您的相關權益,請及時聯繫我,我將妥善處理。 code

相關文章
相關標籤/搜索