使用 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