Java中關于日期和時間的處理主要通過java.util.Date和java.util.Calendar類來實現(xiàn)。其中,Date類是Java中內置的表示時間點的類,而Calendar類是基于Date類的一種抽象,提供了對日期和時間的各種操縱及計算。
//獲取當前時間 Date now = new Date(); System.out.println(now); //獲取指定時間 Date date = new Date(121, 2, 5, 10, 38, 15); //參數(shù)分別為年、月、日、小時、分鐘、秒 System.out.println(date); //使用SimpleDateFormat格式化時間 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(date)); //輸出格式化后的時間 //使用Calendar類操作時間 Calendar cal = Calendar.getInstance(); cal.setTime(date); //將date作為Calendar對象的時間 int year = cal.get(Calendar.YEAR); //獲取年份 int month = cal.get(Calendar.MONTH) + 1; //獲取月份(月份從0開始,需要加1) int day = cal.get(Calendar.DAY_OF_MONTH); //獲取日期 int hour = cal.get(Calendar.HOUR_OF_DAY); //獲取小時 int minute = cal.get(Calendar.MINUTE); //獲取分鐘 int second = cal.get(Calendar.SECOND); //獲取秒鐘 cal.add(Calendar.DATE, 7); //在當前時間基礎上加上7天 System.out.println(sdf.format(cal.getTime())); //輸出加后后的時間
除了基本的日期和時間操作外,Java還提供了專門針對時間差計算的類Duration和Period,包括計算兩個時間點之間的時間差、對時間進行加減等。
//計算兩個時間點之間的時間差 Instant start = Instant.parse("2021-03-05T10:38:15Z"); Instant end = Instant.parse("2021-03-06T14:25:30Z"); Duration duration = Duration.between(start, end); System.out.println(duration.toHours()); //對時間進行加減 LocalDateTime ldt = LocalDateTime.of(2021, 3, 5, 10, 38, 15); ldt = ldt.plusDays(7).plusHours(2); System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
Java中日期和時間的處理非常靈活和方便,不僅提供了基本的公共API,還有許多第三方庫可以使用,例如Joda-Time、Time4J等,可以根據(jù)自己的需要選擇使用。