作用說明
Date用于定義時間,提供date對象間的比較方法
Calendar(日歷類),提供對時間的運算方法
DateFormat是接口,它的實現類SimpleDateFormat用來規范時間輸出形式
LocalDate,在JDK1.8之后引入,方便了對時間的運算
方法介紹
Date常用方法
compareTo 比較目標值與源值的大小,目標值比源值大則返回負數,否則返回正數,用于判斷
before比較目標值是否在源值之前
equals比較兩時間是否相同
gettime()獲取系統時間
轉換方法
String轉Date用DateFormat對象的parse(String str)方法
Date轉Calendar用Calendar對象的setTime(Date date)方法
Calendar轉Date用Calendar對象的getTime()方法
Date轉String用DateFormat對象的format(Date date)方法
public static void main(String[] args) throws ParseException {String str = "2025-08-13 16:40:30 999";DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//String轉Date按照給定的格式轉Date date = dateFormat.parse(str);Calendar calendar = Calendar.getInstance();//Date轉calendarcalendar.setTime(date);//用calendar進行運算,天數減1calendar.add(Calendar.DATE, -1);//calendar轉DateDate time = calendar.getTime();//Date轉StringString newTime = dateFormat.format(time);System.out.println(newTime);}
特殊的構造Calendar
Calendar calendar = Calendar.getInstance();//給calendar賦值用setTimecalendar.setTime(date);
用Calendar運算時間
用Calendar對象的add方法,第一個參數獲時間,第二個參數在第一個參數上運算
public static void main(String[] args) throws ParseException {String str = "2025-08-13 16:40:30 999";DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//String轉DateDate date = dateFormat.parse(str);Calendar calendar = Calendar.getInstance();//Date轉calendarcalendar.setTime(date);//用calendar進行運算,天數減1
// calendar.add(Calendar.DATE, -1);//2025-08-12 16:40:30 999calendar.set(Calendar.MONTH,12);//2026-01-13 16:40:30 999//calendar轉DateDate time = calendar.getTime();//Date轉StringString newTime = dateFormat.format(time);System.out.println(newTime);}
SimpleDateFormat的格式要求
LocalDate/LocalDateTime
可以很快獲取每一部分的時間,并很容易進行運算
public static void main(String[] args) {//現在時間 2025-8-13 23:07:06.619358300LocalDate date = LocalDate.now();//不可變和String一樣System.out.println(date);LocalDateTime date2 =LocalDateTime.now();System.out.println(date2);System.out.println(date.getMonthValue());//8System.out.println(date.minusDays(30));//-30天 2025-07-14System.out.println(date.plusDays(30));//+30天 2025-09-12}