三、LocalDate 类主要方法

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); // 2019-11-30

		LocalDate localDate2 = LocalDate.now(Clock.systemDefaultZone());
		System.out.println(localDate2); // 2019-11-30

		LocalDate localDate3 = LocalDate.now(ZoneId.of("Asia/Shanghai"));
		System.out.println(localDate3); // 2019-11-30

		LocalDate localDate4 = LocalDate.of(2019, 11, 30);
		System.out.println(localDate4); // 2019-11-30

		LocalDate localDate5 = LocalDate.of(2019, Month.NOVEMBER, 30);
		System.out.println(localDate5); // 2019-11-30
	}

(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); // 2019-11-30

		System.out.println("年 : " + localDate1.getYear()); // 2019
		System.out.println("月(英文) : " + localDate1.getMonth()); // NOVEMBER
		System.out.println(" 月(数字英文): " + localDate1.getMonth().getValue()); // 11
		System.out.println("天 : " + localDate1.getDayOfMonth()); // 30
		System.out.println("星期几(英文) : " + localDate1.getDayOfWeek()); // SATURDAY
		System.out.println("星期几(数字英文) : " + localDate1.getDayOfWeek().getValue()); // 6
		System.out.println("本年的第几天 : " + localDate1.getDayOfYear()); // 334
		System.out.println("是否润年 : " + localDate1.isLeapYear()); // false
		System.out.println("本月天数 : " + localDate1.lengthOfMonth()); // 30
		System.out.println("本年天数 : " + localDate1.lengthOfYear()); // 365
	}

(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); // 2019-11-30

		System.out.println("增加天数 : " + localDate1.plusDays(1)); // 2019-12-01
		System.out.println("增加周数 : " + localDate1.plusWeeks(1)); // 2019-12-07
		System.out.println("增加月数 : " + localDate1.plusMonths(1)); // 2019-12-30
		System.out.println("增加年数 : " + localDate1.plusYears(1)); // 2020-11-30

		System.out.println("减少天数 : " + localDate1.minusDays(1)); // 2019-11-29
		System.out.println("减少月数 : " + localDate1.minusMonths(1)); // 2019-10-30
		System.out.println("减少周数 : " + localDate1.minusWeeks(1)); // 2019-11-23
		System.out.println("减少年数 : " + localDate1.minusYears(1)); // 2018-11-30
	}

(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));  //2019-11-30
		
		
		LocalDate localDate2 = LocalDate.parse("2019-11-30");
		System.out.println(localDate2);  //2019-11-30
		
		DateTimeFormatter df2 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
		System.out.println(localDate1.format(df2));  //2019/11/30
	}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值