日期類別常用的有三個,Date類,Calendar(日曆)類別和日期格式轉換類別(DateFormat)
Date類別中的大部分的方法都已經過時,一般只會用到構造方法取得系統目前的時間。
public class DateDemo { public static void main(String[] args) { Date date = new Date(); System.out.println(date); } }
結果輸出目前系統的時間:Fri Mar 10 16:50:37 CST 2017
我們可以看到,這種格式的時間我們看著並不習慣,所以在展示時間的時候必須要轉換輸出格式,這時候我們要用到日期格式轉換類別DateFormat了。
public class FormatDemo { public static void main(String[] args) { Date d=new Date(); System.out.println(d); Format f=new SimpleDateFormat("yyyy-MM-dd hh-mm-ss"); String s=f.format(d); System.out.println(s); } }
這時輸出時間為:2017-03-10 04-54-06
這樣就看著很舒服了。
Calendar
Calendar 類別是抽象類,它為特定瞬間與一組諸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日曆字段之間的轉換提供了一些方法,並為操作日曆欄位(例如獲得下週的日期)提供了一些方法。
可以使用三種方法來變更行事曆欄位:set()、add() 和 roll()。
1,set(f, value) 將行事曆欄位f 改為value。
2,add(f, delta) 將delta 加入f 欄位。
3,roll(f, delta) 將delta 加入f 欄位中,但不會更改較大的欄位。
public class Test { public static void main(String[] args) { Calendar c=new GregorianCalendar(); c.set(Calendar.DAY_OF_MONTH,1); System.out.println("输出的是本月第一天"); System.out.println((c.get(Calendar.MARCH)+1)+"月的"+c.get(Calendar.DAY_OF_MONTH)+"号"); c.roll(Calendar.DAY_OF_MONTH,-1); System.out.println("输出的是本月最后一天"); System.out.println((c.get(Calendar.MARCH)+1)+"月的"+c.get(Calendar.DAY_OF_MONTH)+"号"); } }
輸出結果為:
輸出的是本月第一天
3月的1號
#輸出的是本月最後一天
3月的31號
Roll方法在操作的過程中,一號天數減一之後,直接又返回本月的最後一天,日期變動在本月內循環而不會去改變月份,即不會更改更大的欄位。
比較add方法:
public class Test { public static void main(String[] args) { Calendar c=new GregorianCalendar(); c.set(Calendar.DAY_OF_MONTH,1); System.out.println("输出的是本月第一天"); System.out.println((c.get(Calendar.MARCH)+1)+"月的"+c.get(Calendar.DAY_OF_MONTH)+"号"); c.add(Calendar.DAY_OF_MONTH,-1); System.out.println("输出的是上个月最后一天"); System.out.println((c.get(Calendar.MARCH)+1)+"月的"+c.get(Calendar.DAY_OF_MONTH)+"号"); } }
輸出結果為:
輸出的是本月第一天
3月的1號
輸出的是本月最後一天
2月的28號
可以看出在三月一號的基礎上減去一之後,自動月份自動變到了二月。這個時roll方法和ad方法的差別。
以上是Java中常用的日期類別說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!