Java 中的日期與時間處理

Java 中的日期與時間處理

題外

工作以來有些迷茫,一開始瞭解了一下 SSM 框架的使用,而在公司的實際開發中並非如此,而是在 SSH 框架的基礎上使用,又去稍微看了一下 Struts2,而 Hibernate 還沒開始去了解。

近來突然覺得,框架其實不是重點,只是爲了快速開發而已。所以開始反過來,繼續補習基礎的知識。

這一篇是馬士兵老師講的 JavaSE基礎專題_日期處理 的一些筆記,而馬老師講這個專題時,主要的還是在教一種學習的思路,更多的靠自學。

日期與時間

主要的相關的類

java.lang.System

java.util.Date

java.util.Calendar

java.util.GregorianCalendar

java.util.TimeZone

java.text.DateFormat

java.text.SimpleDateFormat

java.sql.Date

java.sql.Time

java.sql.Timestamp

而我們常用的主要是 java.util.Date,java.util.Calendar,java.text.SimpleDateFormat 和 java.sql.Timestamp。大多用在與數據庫打交道,故在從數據庫中獲取數據之類的,大多使用 Timestamp 來操作。

格式轉換例子

    // 默認將當前時間傳入,例如 Thu Oct 19 21:42:19 CST 2017
    Date d = new Date(); 
    System.out.println("Date 對象中的時間:" + d);

    // 設置時間格式
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 

    // 格式化日期返回 String 類型,format 中傳入 Date 類型或者其子類(例如下面的 Timestamp 類)
    String s = sdf.format(d); 
    System.out.println("SimpleDateFormat 格式化後的字符串:" + s);

    // 時間戳,數據庫中獲取的值
    Timestamp ts = Timestamp.valueOf(s); 
    // Timestamp format must be yyyy-MM-dd hh:mm:ss[.fffffffff],如果不是會報錯
    System.out.println("Timestamp 對象中的時間:" + ts);

    // 初始化日曆 默認也是存入當前時間
    Calendar c = Calendar.getInstance(); 
    c.setTime(ts); // 設置時間,存入 Date 類及其子類
    System.out.println("Calendar 獲取時間所在月份中的第幾天:" + c.get(Calendar.DAY_OF_MONTH));

    /*
    運行結果:
    ------------------------------------
    Date 對象中的時間:Thu Oct 19 22:01:15 CST 2017
    SimpleDateFormat 格式化後的字符串:2017-10-19 10:01:15
    Timestamp 對象中的時間:2017-10-19 10:01:15.0
    Calendar 獲取時間所在月份中的第幾天:19
     */

心得

主要學習的是思路,由已知的知識拓展到自己所不瞭解,或者不知道的。

一開始時只是知道 Date 類,使用之中在 API 文檔中尋找 Date 類的方法,隨後便會發現有些方法已經被廢棄了,而廢棄的後面就會告訴我們一些替代的方法。例如 Date 類中的 getHours 方法的描述:

Deprecated. 
As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY).

於是乎,我們根據描述去找到 java.util.Calendar 這個類進行知識的拓展。這就是我們所需要的學習方法。

下面附上馬士兵老師推薦的自學順序

1. 查文檔、做實驗
2. Google
    1. 關鍵詞的選擇
        由精細到粗化
    2. 略讀頁面介紹,分析可能性
        超過 5 頁眉找到,不要往後翻
    3. 先中文,後英文
3. 論壇
    1. 問題問清楚
    2. www.csdn.net
    3. 國外的論壇

後記

本文基於個人的學習
分享出來純當給大家參考一下,也當作自己的筆記

馬士兵老師的教程雖然相對於其他教程距今比較久遠,但是底層的東西以及思想是不容易變化的,還是值得學習學習的。

編輯:HochenChong
時間:2017-10-19
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章