使用 of
方法建立實例,靜態不可變對象java
LocalDate localDate = LocalDate.of(2019, 5, 20); // 建立 LocalDate 對象
LocalTime localTime = LocalTime.of(22, 5, 23); // 建立 LocalTime 對象
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime); // 使用 LocalDate 和 LocalTime 建立 LocalDateTime 對象
LocalDateTime localDateTime1 = LocalDateTime.of(2019, 5, 20, 22, 22, 33); // 根據指定日期時間建立 LocalDatetime 建立 LocalDateTime 對象
複製代碼
LocalDateTime
對象由 LocalDate
對象 和 LocalTime
對象組成。spa
合併了 LocalDate 和 LocalTime,能夠從 LocalDateTime
中分離出 LocalDate
和 LocalTime
對象code
LocalDate localDate = localDateTime.toLocalDate();
LocalTime localTime = localDateTime.toLocalTime();
複製代碼
LocalDateTime localDateTime = localDateTime.plusYears(1);
LocalDateTime localDateTime = localDateTime.plusYears(1);
LocalDateTime localDateTime = localDateTime.plusDays(1);
LocalDateTime localDateTime = localDateTime.plusWeeks(1);
LocalDateTime localDateTime = localDateTime.plusHours(1);
LocalDateTime localDateTime = localDateTime.plusMinutes(1);
LocalDateTime localDateTime = localDateTime.plusSeconds(1);
LocalDateTime localDateTime = localDateTime.plusMinutes(1);
LocalDateTime localDateTime = localDateTime.plusNanos(1);
複製代碼
方法名 | 是否靜態方法 | 方法描述 |
---|---|---|
between | 是 | 建立兩個時間點之間的 interval |
from | 是 | 由一個臨時時間點建立interval |
of | 是 | 由它的組成部分建立 interval 的實例 |
parse | 是 | 由字符串建立 interval 的實例 |
addTo | 否 | 建立該 interval 的副本,並將其疊加到某個指定的 temporal 對象 |
get | 否 | 讀取該 interval 的狀態 |
isNegative | 否 | 檢查該 interval 是否爲負值,不包含零 |
isZero | 否 | 檢查該 interval 的時長是否爲零 |
miuns | 否 | 經過減去必定的時間建立該 interval 的副 |
multipliedBy | 否 | 將 interval 的值乘以某個標量建立該 interval 的副本 |
negated | 否 | 以忽略某個時長的方式去建立該 interval 的副本 |
plus | 否 | 以增長某個指定的時長的方式建立該 interval 的副本 |
subtractFrom | 否 | 從指定的 termporal 對象中減去該 interval |
方法名 | 是不是靜態方法 | 描述 |
---|---|---|
from | 是 | 依據傳入的 Temporal 對象建立對象實例 |
now | 是 | 依據系統時鐘建立 Temporal 對象 |
of | 是 | 由 Temporal 對象的某個部分建立該對象的實例 |
parse | 是 | 由字符串建立 Temporal 對象的實例 |
atOffset | 否 | 由字符串建立 Temporal 對象的實例 |
atZone | 否 | 將 Temporal 對象和某個時區相結合 |
format | 否 | 使用某個指定的格式器,將 Temporal 對象轉換成爲字符串 |
get | 否 | 讀取 Temporal 對象的某一部分的值 |
minus | 否 | 建立 Temporal 對象的一個副本,經過將當前 Temporal 對象的值減去必定的時長建立該副本 |
plus | 否 | 建立 Temporal 對象的一個副本,經過將當前 Temporal 對象的值加上必定的時長建立該副本 |
with | 否 | 以該 Temporal 對象爲模板,對某些狀態進行修改建立該對象的副本 |
進行更加複雜的操做,能夠使用重載版本的 with 方法傳遞一個更多定製化的 TemporalAdjuster 對象。orm
方法名 | 描述 |
---|---|
dayOfWeekInmonth | 建立一個新的日期,它的值爲同一個月中每一週的第幾天 |
firstDayOfMonth | 建立一個新的日期,它的值爲當月的第一天 |
firstDayOfNextMonth | 建立一個新的日期,它的值爲下月的第一天 |
firstDayOfNextYear | 建立一個新的日期,它的值爲明年的第一天 |
firstDayOfYear | 建立一個新的日期,它的值爲當年的第一天 |
firstInMonth | 建立一個新的日期,它的值爲同一個月中,第一個符合星期幾要求的值 |
lastDayOfMonth | 建立一個新的日期,它的值爲下月的最後一天 |
lastDayOfNextMonth | 建立一個新的日期,它的值爲下月的最後一天 |
lastDayofNextYear | 建立一個新的日期,它的值爲明年的最後一天 |
lastDayOfYear | 建立一個新的日期,它的值爲今年的最後一天 |
lastInMonth | 建立一個新的日期,它的值爲同一個月中,最後一個符合星期幾要求的值 |
next/previous | 建立一個新的日期,並將其設定爲日期調整後或者調整前,前一個符合指定星期幾要求的日期 |
nextOrSame/previousOrSame | 建立一個新的日期,並將其值設定爲日期調整後或者調整前,第一個符合指定星期幾要求的日期,若是該日期已經符合要求,直接返回該對象 |
以上 JDK 提供的仍然沒法知足要求,能夠建立本身的 TemporalAdjuster
對象
@FunctionalInterface
public interface TemporalAdjuster {
Temporal adjustInto(Temporal temporal);
}
複製代碼
實現 TemporalAdjuster
接口,而後在 adjustInto 方法中實現本身的邏輯。接口
public void testTemporalAdjuster() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime nextYear = now.with((t) -> t.plus(1, ChronoUnit.YEARS));
String format = now.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
System.out.println(format);
String format1 = nextYear.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
System.err.println(format1);
}
複製代碼
功能:獲取下一年的日期時間對象。ip