Java日誌第24天 2020.7.29
Date類
Date類的概念與作用
Date類表示特定的瞬間,精確到毫秒。
1秒 = 1000 毫秒
時間原點(0毫秒):1970年1月1日 0:0:0(英國格林尼治天文臺時間)
而因為中國屬於東八區,故時間原點應在此基礎上加上八個小時。
輸出時間原點
public class Demo01Date { public static void main(String[] args) { System.out.println(System.currentTimeMillis()); } }
毫秒值與時間換算
1天 = 24小時 * 60分鐘 *60秒 * 1000毫秒 = 86400000毫秒
Date類的構造方法和成員方法
構造方法主要有:
Date()無參構造方法。用於獲取當前系統的時間和日期
Date(Long time) 有參構造方法,用於得到自時間原點經歷毫秒值所得到的時間
成員方法主要有:
getTime()方法,用於獲取當前系統時間的毫秒值。
具體實現如下程式碼:
import java.util.Date; public class Demo02Date { public static void main(String[] args) { demo01(); demo03(demo02()); } /* Date類的無參構造方法 用於獲取當前系統的時間和日期*/ public static void demo01(){ Date date = new Date(); System.out.println(date); } /* Long getTime()方法返回自時間原點到系統時間的毫秒值 相當於Ststem.currentTimeMills()方法 */ public static long demo02(){ Date date = new Date(); long time = date.getTime(); returntime; } /* Date有參構造方法 引數是一個毫秒值 返回從時間原點經過毫秒值到達的時間 */ public static void demo03(Long time){ Date date = new Date(time); System.out.println(date); } }
結果如下:
DateFormat類
DateFormat是時間、日期格式化子類的抽象類。它有一個直接已知子類SimpleDateFormat類,一個父類Format類。
作用:1.格式化(日期->文字) 2.解析(文字->日期)
成員方法:
1. String format(Date date) 按照指定的模式,把Date日期格式化為符合標準的字串
2. Date parse(String source) 把複合模式的字串,解析為Date日期
DateFormat是一個抽象類,無法直接使用建立物件,應該使用子類。
java.text.SimpleDateFormat
構造方法
SimpleDateFormat(String pattern)
用給定的模式和預設語言環境的日期格式符號構造SimpleDateFormat
引數:String pattern 傳遞指定的模式
模式:區分大小寫
y 年 M 月 d 日 H 時 m 分 s秒
模式寫法:
yyyy-MM-dd HH:mm:ss
模式中的字母不能更改,連線模式的符號可以改變。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo01DateFormat { public static void main(String[] args) throws ParseException { System.out.println("日期轉換為文字:"); demo01(); System.out.println("==============="); System.out.println("文字轉換為日期:"); demo02(); } /* 使用format方法將日漸轉換為文字 */ public static void demo01(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String d = sdf.format(date); System.out.println(date); System.out.println(d); } /* 使用parse方法解析時間日期類 但是注意:如果字串和構造方法的模式不一樣,那麼程式就會丟擲此異常 呼叫一個丟擲了異常的方法,就必須處理這個異常 兩種方法:1.throws繼續丟擲這個異常 2.try catch自己處理這個異常 */ public static void demo02() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse("2020-07-29 11:19:38"); System.out.println(date); } }
結果如下:
今天學習的內容非常實用,在開發C++程式的時候,很多時候用到獲取系統時間,而Java中的Date類和DateFormat類很好的解決了此問題。
明天繼續學習Calendar和System類