標籤:開發 text this 設定 直接 正則表達 預設 格式化 擷取
一:java.util.Data 包
Data對象表示一個精確到毫秒的瞬間。
下面我僅介紹它還剩下的為數不多的幾個方法(這些方法的共同點是Date與毫秒值的轉換):
構造方法:
Date(): 在底層調用System.currentTimeMillis()作為日期參數
Date(long date): 根據指定的long整數(從1970-1-1 00:00:00以來經過的毫秒數)來產生Date對象.
方法
boolean after(Date when): 測試this日期是否在指定日期when之後;
boolean before(Date when): 測試this日期是否在指定日期when之前;
long getTime(): 擷取從1979-01-01 00:00:00 到Date對象之間經過的毫秒值;
void setTime(long time): 設定時間,time含義上同.
二:java.util.calendar 包
由於Data存在很多的缺陷,因此提供了一個calendar抽象類別來處理日期和時間。是所有日曆類的模板,因此,我們可以繼承Calendar來實現其他的曆法(比如陰曆)。
Java中提供了一種Calendar的預設實現java.util.GregorianCalendar格裡高利日曆(其實JDK還預設提供了一款日本曆法java.util.JapaneseImperialCalendar),也就是我們所說的西曆. 使用
Calendar.getInstance();擷取的就是預設的GregorianCalendar,getInstance()方法的內部會調用cal = new GregorianCalendar(zone, aLocale);來產生一個格裡高利日曆執行個體.
下面介紹常用的方法:
- void add(int field, int amount) 根據日曆的規則,將指定的時間量添加或減去給定的日曆欄位。field是Calendar類的類變數, 如:
Calendar.DATECalendar.MONTHCalendar.HOURCalendar.DAY_OF_WEEK。但需要指出的是Calendar.MONTH月份的起始值不是1, 而是0(一月:0, 二月:1 …), Calendar.DAY_OF_WEEK代表的星期, 起始值是周日(周日:1, 周一:2 …) ;讓amount為正數, 如果要減少某欄位的值, 讓amount為負數. 且當超出他的允許範圍時, 會發生進位.
- int get(int field) 返回給定日曆欄位的值。
- int getActualMaximum(int field) 給定日曆日曆的時間值,返回指定日曆欄位可以擁有的最大值。
- int getActualMinimum(int field) 給定日曆日曆的時間值,返回指定日曆欄位可以擁有的最小值
- void roll(int field, int amount) 將指定的(簽名)數量添加到指定的日曆欄位,而不更改較大的欄位。
- void set(int field, int value) 將給定的日曆欄位設定為給定值。
- void set(int year, int month, int date) 設定日曆欄位年、月和月的月份值。
- void set(int year, int month, int date, int hourOfDay, int minute, int second) 設定欄位年、月、日、月、小時、分鐘和秒的值。
- void setTimeInMillis(long millis)從給定的長值設定此日曆的目前時間。
- long getTimeInMillis() 以毫秒返回此日曆的時間值。
詳細文檔介紹:https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html
三:java.text.DateFormat
java.text.DateFormat包用於日期格式化,是一個抽象類別
方法:
- static DateFormat getDateInstance()擷取預設格式的預設格式化樣式的日期格式化程式。
- static DateFormat getDateTimeInstance()擷取具有預設區域設定的預設格式化樣式的日期/時間格式化程式。
- static DateFormat getTimeInstance()擷取具有預設區域設定的預設格式化樣式的時間格式化程式。
但由於在我們的實際開發中很少直接用DateFormat類,而我們比較常用的是其子類SimpleDateFormat。
四:java.text.SimpleDateFormat.
java.text.SimpleDateFormat可以非常靈活的格式化Date, 也可以用於解析各種格式的日期文字.建立SimpleDateFormat對象時需要傳入一個pattern字串,這個pattern不是Regex,而是一個日期模板字串.
方法:
- String format(Date date) 將日期格式化為日期/時間字串。
- Date parse(String source) 從給定字串的起始處解析文本以產生日期。
詳細文檔介紹:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number
JAVA日期與時間