1、在线API
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
2、主要方法
(1)创建LocalDate
方法 | 说明 |
---|
static LocalDate now() | 获取默认时区的当前日期 |
static LocalDate now(Clock clock) | 从指定时钟获取当前日期 |
static LocalDate now(ZoneId zone) | 获取指定时区的当前日期 |
static LocalDate of(int year, int month, int dayOfMonth) | 根据指定的年、月、日获取LocalDate 实例 |
static LocalDate of(int year, Month month, int dayOfMonth) | 根据指定的年、月、日获取LocalDate 实例 |
public static void crtLocalDate() {
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
LocalDate localDate2 = LocalDate.now(Clock.systemDefaultZone());
System.out.println(localDate2);
LocalDate localDate3 = LocalDate.now(ZoneId.of("Asia/Shanghai"));
System.out.println(localDate3);
LocalDate localDate4 = LocalDate.of(2019, 11, 30);
System.out.println(localDate4);
LocalDate localDate5 = LocalDate.of(2019, Month.NOVEMBER, 30);
System.out.println(localDate5);
}
(2)获取年月日等
方法 | 说明 |
---|
int getYear() | 获取年份 |
Month getMonth() | 使用月枚举类型获取月份 |
int getDayOfMonth() | 获取日期在该月是第几天 |
DayOfWeek getDayOfWeek() | 获取日期是星期几 |
int getDayOfYear() | 获取日期在该年是第几天 |
boolean isLeapYear() | 检查是否闰年 |
int lengthOfMonth() | 返回日期所在月份共有几天 |
int lengthOfYear() | 返回日期所在年份共有几天 |
public static void getLocalDate() {
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
System.out.println("年 : " + localDate1.getYear());
System.out.println("月(英文) : " + localDate1.getMonth());
System.out.println(" 月(数字英文): " + localDate1.getMonth().getValue());
System.out.println("天 : " + localDate1.getDayOfMonth());
System.out.println("星期几(英文) : " + localDate1.getDayOfWeek());
System.out.println("星期几(数字英文) : " + localDate1.getDayOfWeek().getValue());
System.out.println("本年的第几天 : " + localDate1.getDayOfYear());
System.out.println("是否润年 : " + localDate1.isLeapYear());
System.out.println("本月天数 : " + localDate1.lengthOfMonth());
System.out.println("本年天数 : " + localDate1.lengthOfYear());
}
(3)加减天、周、月、年
方法 | 说明 |
---|
LocalDate plusDays(long daysToAdd) | 返回增加了*天的LocalDate副本 |
LocalDate plusWeeks(long weeksToAdd) | 返回增加了*周的LocalDate副本 |
LocalDate plusMonths(long monthsToAdd) | 返回增加了*月的LocalDate副本 |
LocalDate plusYears(long yearsToAdd) | 返回增加了*年的LocalDate副本 |
LocalDate minusDays(long daysToSubtract) | 返回减少了*天的LocalDate副本 |
LocalDate minusWeeks(long weeksToSubtract) | 返回减少了*周的LocalDate副本 |
LocalDate minusMonths(long monthsToSubtract) | 返回减少了*月的LocalDate副本 |
LocalDate minusYears(long yearsToSubtract) | 返回减少了*年的LocalDate副本 |
public static void addAndSubtract() {
LocalDate localDate1 = LocalDate.now();
System.out.println(localDate1);
System.out.println("增加天数 : " + localDate1.plusDays(1));
System.out.println("增加周数 : " + localDate1.plusWeeks(1));
System.out.println("增加月数 : " + localDate1.plusMonths(1));
System.out.println("增加年数 : " + localDate1.plusYears(1));
System.out.println("减少天数 : " + localDate1.minusDays(1));
System.out.println("减少月数 : " + localDate1.minusMonths(1));
System.out.println("减少周数 : " + localDate1.minusWeeks(1));
System.out.println("减少年数 : " + localDate1.minusYears(1));
}
(4)日期比较
方法 | 说明 |
---|
boolean isEqual(ChronoLocalDate other) | 日期与另一个日期比较 |
boolean isAfter(ChronoLocalDate other) | 检查日期是否在指定日期之后 |
boolean isBefore(ChronoLocalDate other) | 检查日期是否在指定日期之前 |
public static void compareLocalDate() {
LocalDate localDate1 = LocalDate.now();
LocalDate localDate2 = LocalDate.of(2019, 11, 29);
LocalDate localDate3 = LocalDate.of(2019, 12, 01);
if (localDate1.isEqual(localDate2)) {
System.out.println("localDate1和localDate2相等");
} else {
System.out.println("localDate1和localDate2不相等");
}
if (localDate1.isAfter(localDate2)) {
System.out.println("localDate1在localDate2之后");
}
if (localDate1.isBefore(localDate3)) {
System.out.println("localDate1在localDate3之前");
}
}
(5)日期转换
方法 | 说明 |
---|
String format(DateTimeFormatter formatter) | 使用特定格式化形式将LocalDate转为字符串 |
static LocalDate parse(CharSequence text) | 从文本字符串获取LocalDate实例 |
static LocalDate parse(CharSequence text, DateTimeFormatter formatter) | 使用特定格式化形式从文本字符串获取LocalDate实例 |
public static void convertLocalDate() {
LocalDate localDate1 = LocalDate.now();
DateTimeFormatter df1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(localDate1.format(df1));
LocalDate localDate2 = LocalDate.parse("2019-11-30");
System.out.println(localDate2);
DateTimeFormatter df2 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
System.out.println(localDate1.format(df2));
}