Java DateTime 日期时间处理

类别

  1. java.util.Date
  2. java.sql.Date
  3. java.sql.Time
  4. java.sql.Timestamp
  5. -------------------------------------
  6. java.util.Calendar
  7. java.util.GregorianCalendar
  8. java.util.TimeZone
  9. java.util.SimpleTimeZone
  10. -------------------------------------
  11. java.text.DateFormat
  12. java.text.SimpleDateFormat
  13. java.text.DateFormatSymbols

应用

ava.util.Date 與 java.sql.Date 互轉

java.sql.Date 就是一個裝了毫秒值的精簡型外覆器,它允許 JDBC 將毫秒值標識為 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以來經過的毫秒數。而 java.util.Date 的 getTime() 及 setTime(long time) 就是在處理毫秒值的函數。

 // java.util.Date --> java.sql.Date
java.util.Date now = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(now.getTime());

// java.sql.Date --> java.util.Date
java.util.Date utilDate = new java.util.Date();
utilDate.setTime(sqlDate.getTime());
java.util.Date 與 java.util.Calendar 互轉

Date 要跟 Calendar 互轉,主要都要透過 Calendar 的 getTime 及 setTime 函數。

// java.util.Date --> java.util.Calendar
java.util.Date now = new java.util.Date();
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(now);

// java.util.Calendar --> java.util.Date
java.util.Date utilDate = java.util.Calendar.getInstance().getTime();
java.lang.String 轉成 java.util.Date

原本 class Date 有一個函數 parse(String s) 可以把 String 轉成毫秒數。但是從 JDK 1.1 開始,由 DateFormat.parse(String s) 取代。

// java.lang.String --> java.util.Date
java.util.Date date = DateFormat.getDateInstance().parse("2011/1/1");
date = DateFormat.getTimeInstance().parse("下午 12:12:12");
date = DateFormat.getDateTimeInstance().parse("2011/1/1 下午 12:12:12");
但是使用 DateFormat.parse() 來解析 String 有一個壞處,就是只能使用系統環境固定的格式。像我使用 WindowsXP 台灣版本,都要輸入上午/下午才能正確解析 String。這時候就可以改用 java.text.SimpleDateFormat.parse() 來做自訂格式的解析。
 // java.lang.String --> java.util.Date
java.util.Date date;
java.text.SimpleDateFormat simple = new java.text.SimpleDateFormat();
simple.applyPattern("yyyy-MM-dd");
date = simple.parse("2011-1-1");
simple.applyPattern("HH:mm:ss");
date = simple.parse("13:13:13");
simple.applyPattern("yyyy-MM-dd HH:mm:ss");
date = simple.parse("2011-1-1 13:13:13");
  1. 參考網址: http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/

  2. java.util.Date 轉成 java.lang.String

    java.util.Date 要轉成 java.lang.String 就比較簡單了。只要使用 java.text.SimpleDateFormat 的 format 函數就可以。

// java.util.Date --> java.lang.String
java.util.Date now = new java.util.Date();
System.out.println(new java.text.SimpleDateFormat().format(now));
System.out.println(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now));





你可能感兴趣的:(Java学习)