27、日期操作類

日期處理類(Date)

  • 在Java中有一個Java.util.Date的類,直接表示當前時間。
    範例:取得當前時間
import java.util.Date;

public class Demo {
    public static void main(String[] args) throws Exception {
        Date date = new Date();
        System.out.println(date); // Tue May 02 16:23:10 CST 2017
    }
}

上述代碼雖然輸出了當前時間,但是格式不便於觀看。

  • long可以描述日期時間數據,這一點在Date類的方法中也可以體現,Date中定義瞭如下幾個方法:
    · 無參構造方法:public Date();
    · 有參構造方法:public Date(long date),接收long型數據;
    · 轉換爲long型數據:public long getTime();
    範例:Date與long的轉換
import java.util.Date;

public class Demo {
    public static void main(String[] args) throws Exception {
        long cur = System.currentTimeMillis(); // 取得當前時間,以long型返回
        Date date = new Date(cur); // 轉換爲Date型
        System.out.println(date);
        System.out.println(date.getTime()); // 轉換爲long型數據
    }
}

日期處理類(SimpleDateFormat)

  • java.text是一個專門實現程序國際化的開發包,而其中的SimpleDateFormat是一個專門處理日期格式的工具類,即可以將Date型對象轉換爲String型,主要使用以下方法:
    · 構造方法:public SimpleDateFormat(String pattern),需要傳遞轉換格式;
    · 將Date轉換爲String:public final String format(Date date);
    · 將String轉換爲Date:public Date parse(String source) throws ParseException;
  • 常見的日期轉換單位:年(yyyy)、月(MM)、日(dd)、時(HH)、分(mm)、秒(ss)、毫秒(SSS)
    範例:將日期格式化顯示(Date型數據變爲String型數據)
public class Demo {
    public static void main(String[] args) throws Exception {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        String str = sdf.format(date);
        System.out.println(str);
    }
}

範例:將String轉換爲Date

import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo {
    public static void main(String[] args) throws Exception {
        String str = "2011-11-11 11:11:11.111";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        Date date = sdf.parse(str); // String變爲Date
        System.out.println(date); // Fri Nov 11 11:11:11 CST 2011
    }
}

在將字符串變爲日期型數據時,如果字符串中的格式與要轉換的格式不符合,就會出現異常;如果給出的月超出了返回,系統會自動進行轉換。
總結:

  1. 數據表中常用的類型:VARCHAR2(String)、CLOB(String)、Number(int或int)、Date(java.util.Date);
  2. Date與String類之間的轉換依靠SimpleDateFormat;
  3. String與基本類型之間的轉換依靠的是包裝類與String.valueOf()方法;
  4. long與Date轉換依靠的是Date的構造方法和getTime()方法。

日期處理類(Calendar)

  • Calendar類是進行一些簡單的日期計算。Calendar類定義如下:
    public abstract class Calendar extends implements Serializable,Cloneable,Comparable<Calendar>
    由其定義可知Calendar是一個抽象類,應該依靠其子類進行實例化操作。在其子類GregorianCalendar提供有一個static方法,返回的是Calendar對象:
    public static Calendar getInstance()

範例:取得當前日期時間

import java.util.Calendar;

public class Demo {
    public static void main(String[] args) throws Exception {
        Calendar cal = Calendar.getInstance();  // 取得Calendar對象
        StringBuffer buf = new StringBuffer();
        buf.append(cal.get(Calendar.YEAR)).append("-");
        buf.append(cal.get(Calendar.MONTH) + 1).append("-");
        buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" ");
        buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");
        buf.append(cal.get(Calendar.MINUTE)).append(":");
        buf.append(cal.get(Calendar.SECOND));
        System.out.println(buf); // 2017-5-2 17:9:48
    }
}

範例:取得若干天后的日期

import java.util.Calendar;

public class Demo {
    public static void main(String[] args) throws Exception {
        Calendar cal = Calendar.getInstance();  // 取得Calendar對象
        StringBuffer buf = new StringBuffer();
        buf.append(cal.get(Calendar.YEAR)).append("-");
        buf.append(cal.get(Calendar.MONTH) + 1).append("-");
        buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" ");
        buf.append(cal.get(Calendar.HOUR_OF_DAY) + 3).append(":");
        buf.append(cal.get(Calendar.MINUTE)).append(":");
        buf.append(cal.get(Calendar.SECOND));
        System.out.println(buf); // 2017-5-2 17:9:48
    }
}

如果是日期計算,Calendar比Date容易,因爲使用Date進行日期計算,要轉換爲long。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章