目录
1、LocalDate(jdk1.8)
1.1 now(): 给出LocalDate实例,该实例包含默认时区的系统时钟的当前日期。
1.2 now(Clock clock): 提供LocalDate实例,该实例具有从指定时钟获得的当前日期。
1.3 now(ZoneId zone): 给出当前日期的LocalDate实例,该日期来自指定时区的系统时钟。
1.4 of(int year, int month, int dayOfMonth): 从给定的年、月、日中获得LocalDate实例,输入数据类型为int。
1.5 of(int year, Month month, int dayOfMonth): 从给定的年(int)、月(Month)和日(int)给出LocalDate实例。
1.6 ofEpochDay(long epochDay): 从给定的纪元日数中给出LocalDate实例。
1.7 ofInstant(Instant instant, ZoneId zone): 从给定的Instant和ZoneId给出LocalDate实例。
1.8 ofYearDay(int year, int dayOfYear): 从给定的年份和年份中的天数给出LocalDate实例,输入数据类型为int。
1.9 parse(CharSequence text): 从给定的文本字符串,如 "2018-10-01",给出LocalDate实例。
1.10 parse(CharSequence text, DateTimeFormatter formatter): 从给定格式的文本字符串中获得LocalDate实例。输出的LocalDate将是yyyy-MM-dd格式。
1.11 from(TemporalAccessor temporal): 从给定的时间对象中获得LocalDate实例。
1.12 plus(long amountToAdd, TemporalUnit unit): 通过增加给定的数量返回LocalDate实例。
1.13 plus(TemporalAmount amountToAdd): 通过添加指定的TemporalAmount返回LocalDate实例。
1.14 plusDays(long daysToAdd): 通过添加指定的天数返回LocalDate实例。
1.15 plusWeeks(long weeksToAdd): 通过添加指定的周数返回 LocalDate 实例,用法与plusDays类似。
1.16 plusMonths(long monthsToAdd): 通过添加指定的月数返回 LocalDate 实例,用法与plusDays类似。
1.17 plusYears(long yearsToAdd): ,通过添加指定的年数返回 LocalDate 实例,用法与plusDays类似。
1.18 minus(long amountToSubtract, TemporalUnit unit): 通过减去给定的数量返回LocalDate实例。
1.19 minus(TemporalAmount amountToSubtract): 通过减去指定的TemporalAmount返回LocalDate实例。
1.20 minusDays(long daysToSubtract): 通过减少指定的天数返回LocalDate实例。
1.21 minusWeeks(long weeksToSubtract): 通过减少指定的周数返回 LocalDate 实例,用法与minusDays相似。
1.22 minusMonths(long monthsToSubtract): 通过减少指定的月数返回 LocalDate 实例,用法与minusDays相似。
1.23 minusYears(long yearsToSubtract): ,通过减少指定的年数返回 LocalDate 实例,用法与minusDays相似。
1.24 with(TemporalAdjuster adjuster): 返回用给定的TemporalAdjuster调整的LocalDate实例。
1.25 with(TemporalField field, long newValue): 将指定字段的LocalDate实例返回到一个新值。
1.26 withDayOfMonth(int dayOfMonth): 通过用给定的值改变月份中的号数来返回LocalDate实例。
1.27 withDayOfYear(int dayOfYear): 通过使用给定值更改一年中的某一天来返回 LocalDate 实例。一年中的第几天的有效值为 1 到 365,闰年的有效值为 1 到 366。
1.28 withMonth(int month): 通过用给定的值改变年的月份来返回LocalDate实例。有效值是1到12。
1.29 withYear(int year): 通过用给定值改变年份来返回LocalDate实例。
1.30 get(TemporalField field): 获取指定字段的int值。
1.31 getChronology(): 获取该日期格式,例如:ISO。
1.32 getDayOfMonth(): 获取一个月中的第几号,为int类型。
1.33 getDayOfWeek(): 获取星期字段,返回DayOfWeek。
1.34 getDayOfYear(): 以 int 格式获取一年中的第几天。它可以返回从 1 到 365 或 366 (闰年)。1.35 getEra(): 获取在此日期适用的时代。例如:"CE "从第一年开始,"BCE "从零年开始。
1.36 getLong(TemporalField field): 获取指定字段的值,返回long类型。
1.37 getMonth(): 从这个日期获取一年中的月份,返回值为Month类型。
1.38 getMonthValue(): 获取月份,取值范围为1-12的int类型。
1.39 getYear(): 获取年份,返回int类型。
1.40 format() 转换格式
1.41 atTime() - 将 LocalDate 与时间结合转化为 LocalDateTime
1.42 atStartOfDay() 将 LocalDate 转化为 LocalDateTime
1.43 isAfter(ChronoLocalDate other): 检查此日期是否在给定日期之后。
1.44 isBefore(ChronoLocalDate other): 检查此日期是否在给定日期之前。
1.45 isEqual(ChronoLocalDate other): 检查此日期是否等于给定日期。
1、LocalDate(jdk1.8)
public final class LocalDate
implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable
LocalDate以年月日的格式输出,即yyyy-MM-dd。
我们可以使用LocalDate的下列静态方法来初始化LocalDate。
1.1 now(): 给出LocalDate实例,该实例包含默认时区的系统时钟的当前日期。
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
输出:
2022-05-06
1.2 now(Clock clock): 提供LocalDate实例,该实例具有从指定时钟获得的当前日期。
LocalDate localDate = LocalDate.now(Clock.systemUTC());
Clock.systemUTC()将返回Clock实例。
1.3 now(ZoneId zone): 给出当前日期的LocalDate
实例,该日期来自指定时区的系统时钟。
LocalDate localDate = LocalDate.now(ZoneId.systemDefault());
1.4 of(int year, int month, int dayOfMonth): 从给定的年、月、日中获得LocalDate实例,输入数据类型为int。
LocalDate localDate = LocalDate.of(2018, 11, 30);
输出为2018-11-30
。
1.5 of(int year, Month month, int dayOfMonth): 从给定的年(int
)、月(Month
)和日(int
)给出LocalDate
实例。
LocalDate localDate = LocalDate.of(2018, Month.NOVEMBER, 30);
输出为2018-11-30
。
1.6 ofEpochDay(long epochDay): 从给定的纪元日数中给出LocalDate
实例。
LocalDate localDate = LocalDate.ofEpochDay(500);
输出为1971-05-16
。
1.7 ofInstant(Instant instant, ZoneId zone): 从给定的Instant
和ZoneId
给出LocalDate
实例。
LocalDate localDate = LocalDate.ofInstant(Instant.now(), ZoneId.systemDefault());
注
:ofInstant
在Java 9
中被引入。
1.8 ofYearDay(int year, int dayOfYear): 从给定的年份和年份中的天数给出LocalDate
实例,输入数据类型为int
。
LocalDate localDate = LocalDate.ofYearDay(2018, 02);
输出为2018-01-02
,即2018
年第二天的日期。
1.9 parse(CharSequence text): 从给定的文本字符串,如 "2018-10-01"
,给出LocalDate
实例。
LocalDate localDate = LocalDate.parse("2018-10-01");
1.10 parse(CharSequence text, DateTimeFormatter formatter): 从给定格式的文本字符串中获得LocalDate
实例。输出的LocalDate
将是yyyy-MM-dd
格式。
LocalDate localDate = LocalDate.parse("15-03-2018",
DateTimeFormatter.ofPattern("dd-MM-yyyy"));
输出为2018-03-15
。
1.11 from(TemporalAccessor temporal): 从给定的时间对象中获得LocalDate
实例。
LocalDate localDate = LocalDate.from(LocalDate.now());
1.12 plus(long amountToAdd, TemporalUnit unit): 通过增加给定的数量返回LocalDate
实例。
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class LocalDateDemo {
public static void main(String[] args) {
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.plus(15, ChronoUnit.DAYS);
System.out.println(localDate2);
}
}
2022-05-06
2022-05-21
在上面的例子中,我们在当前日期中增加了15
天。
1.13 plus(TemporalAmount amountToAdd): 通过添加指定的TemporalAmount
返回LocalDate
实例。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.plus(Period.ofDays(15));
System.out.println(localDate2);
2022-05-06
2022-05-21
在上面的代码中,我们给localDate1
增加了15
天,得到localDate2
作为LocalDate
的实例。
1.14 plusDays(long daysToAdd): 通过添加指定的天数返回LocalDate
实例。
LocalDate localDate1 = LocalDate.parse("2018-11-05");
LocalDate localDate2 = localDate1.plusDays(15);
System.out.println(localDate2);
输出为2018-11-20
。
1.15 plusWeeks(long weeksToAdd): 通过添加指定的周数返回 LocalDate 实例,用法与plusDays类似。
1.16 plusMonths(long monthsToAdd): 通过添加指定的月数返回 LocalDate 实例,用法与plusDays类似。
1.17 plusYears(long yearsToAdd): ,通过添加指定的年数返回 LocalDate 实例,用法与plusDays类似。
1.18 minus(long amountToSubtract, TemporalUnit unit): 通过减去给定的数量返回LocalDate
实例。
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class LocalDateDemo {
public static void main(String[] args) {
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.minus(1, ChronoUnit.DAYS);
System.out.println(localDate2);
}
}
2020-05-06
2020-05-05
在上面的例子中,我们在当前日期中减少了1
天。
1.19 minus(TemporalAmount amountToSubtract): 通过减去指定的TemporalAmount
返回LocalDate
实例。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.minus(Period.ofDays(1));
System.out.println(localDate2);
输出
2020-05-06
2020-05-05
在上面的代码中,我们给localDate1
减少了1
天,得到localDate2
作为LocalDate
的实例。
1.20 minusDays(long daysToSubtract): 通过减少指定的天数返回LocalDate
实例。
LocalDate localDate1 = LocalDate.parse("2018-11-05");
LocalDate localDate2 = localDate1.minusDays(15);
System.out.println(localDate2);
输出为2018-10-21
。
1.21 minusWeeks(long weeksToSubtract): 通过减少指定的周数返回 LocalDate 实例,用法与minusDays相似。
1.22 minusMonths(long monthsToSubtract): 通过减少指定的月数返回 LocalDate 实例,用法与minusDays相似。
1.23 minusYears(long yearsToSubtract): ,通过减少指定的年数返回 LocalDate 实例,用法与minusDays相似。
1.24 with(TemporalAdjuster adjuster): 返回用给定的TemporalAdjuster
调整的LocalDate
实例。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.with(DayOfWeek.SUNDAY);
System.out.println(localDate2);
输出:
2022-05-06
2022-05-08
1.25 with(TemporalField field, long newValue): 将指定字段的LocalDate
实例返回到一个新值。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.with(ChronoField.YEAR, 2017);
System.out.println(localDate2);
输出
2022-05-06
2017-05-06
在上面的代码中,我们为年份设置了新的值。
1.26 withDayOfMonth(int dayOfMonth): 通过用给定的值改变月份中的号数来返回LocalDate
实例。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.withDayOfMonth(10);
System.out.println(localDate2);
输出
2022-05-06
2022-05-10
1.27 withDayOfYear(int dayOfYear): 通过使用给定值更改一年中的某一天来返回 LocalDate
实例。一年中的第几天的有效值为 1
到 365
,闰年的有效值为 1
到 366
。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.withDayOfYear(110);
System.out.println(localDate2);
输出
2022-05-06
2022-04-20
在上面的例子中,我们想在当前日期中设置110
。输出的方式是,年不会改变,月和日将从1
月开始的第110
天中获得。
1.28 withMonth(int month): 通过用给定的值改变年的月份来返回LocalDate
实例。有效值是1
到12
。
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = localDate1.withMonth(6);
System.out.println(localDate2);
输出
2022-05-06
2022-06-06
1.29 withYear(int year): 通过用给定值改变年份来返回LocalDate实例。
1.30 get(TemporalField field): 获取指定字段的int
值。
int val = localDate.get(ChronoField.YEAR);
System.out.println(val);
输出为2018
。
1.31 getChronology(): 获取该日期格式,例如:ISO
。
1.32 getDayOfMonth(): 获取一个月中的第几号,为int
类型。
1.33 getDayOfWeek(): 获取星期字段,返回DayOfWeek
。
1.34 getDayOfYear(): 以 int
格式获取一年中的第几天。它可以返回从 1
到 365
或 366
(闰年
)。
1.35 getEra(): 获取在此日期适用的时代。例如:"CE "
从第一年开始,"BCE "
从零年开始。
Era val = localDate.getEra();
1.36 getLong(TemporalField field): 获取指定字段的值,返回long
类型。
1.37 getMonth(): 从这个日期获取一年中的月份,返回值为Month
类型。
1.38 getMonthValue(): 获取月份,取值范围为1-12
的int
类型。
1.39 getYear(): 获取年份,返回int
类型。
1.40 format() 转换格式
LocalDate
的默认日期格式为 yyyy-MM-dd
。format
方法使用指定的格式化程序格式化日期。
找到它的声明。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class LocalDateDemo {
public static void main(String[] args) {
LocalDate localDate = LocalDate.parse("2018-02-18");
String formattedDate = localDate.format(DateTimeFormatter.ofPattern("MMM dd, yyyy"));
System.out.println(formattedDate);
}
}
二月 18, 2018
1.41 atTime() - 将 LocalDate 与时间结合转化为 LocalDateTime
atTime
方法将 LocalDate
与给定时间结合起来,并返回 LocalDateTime
实例。
我们可以将以下参数传递给 atTime
方法。
atTime(int hour, int minute)
atTime(int hour, int minute, int second)
atTime(int hour, int minute, int second, int nanoOfSecond)
atTime(LocalTime time)
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class LocalDateDemo {
public static void main(String[] args) {
LocalDate localDate = LocalDate.parse("2018-05-02");
System.out.println(localDate);
//hour and minute
LocalDateTime localDateTime = localDate.atTime(16, 50);
System.out.println(localDateTime);
//hour, minute and second
localDateTime = localDate.atTime(16, 50, 20);
System.out.println(localDateTime);
//hour, minute, second and nanoOfSecond
localDateTime = localDate.atTime(16, 50, 20, 300);
System.out.println(localDateTime);
}
}
输出
2018-05-02
2018-05-02T16:50
2018-05-02T16:50:20
2018-05-02T16:50:20.000000300
1.42 atStartOfDay() 将 LocalDate 转化为 LocalDateTime
atStartOfDay
方法将LocalDate
与00:00
的时间结合起来,在这个日期的开始创建LocalDateTime
实例。
为了得到ZonedDateTime
实例,我们需要将ZoneId
实例传递给atStartOfDay
方法。
找到atStartOfDay
方法的声明。
LocalDateTime atStartOfDay()
ZonedDateTime atStartOfDay(ZoneId zone)
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class LocalDateDemo {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = localDate.atStartOfDay();
System.out.println(localDateTime);
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
System.out.println(zonedDateTime);
}
}
输出
2022-05-06T00:00
2022-05-06T00:00+08:00[Asia/Shanghai]
我们可以看到,时间值是一天的开始。
1.43 isAfter(ChronoLocalDate other): 检查此日期是否在给定日期之后。
1.44 isBefore(ChronoLocalDate other): 检查此日期是否在给定日期之前。
1.45 isEqual(ChronoLocalDate other): 检查此日期是否等于给定日期。
import java.time.LocalDate;
public class LocalDateDemo {
public static void main(String[] args) {
LocalDate localDate1 = LocalDate.parse("2018-03-18");
LocalDate localDate2 = LocalDate.parse("2018-05-12");
System.out.println(localDate1.isAfter(localDate2));
System.out.println(localDate1.isBefore(localDate2));
System.out.println(localDate1.isEqual(localDate2));
}
}