Java8 日期时间 —— LocalDate —— 年月日

2016/12/21 14:46
阅读数 2.9W

#一、简介

	LocalDate 只包含了年月日的信息,不包含时间和时区。
	LocalDate 重写了 toString() 方法,一般的格式为 "yyyy-MM-dd"。
	LocalDate 为不可变 class,任何对 LocalDate 的实例进行修改的方法将返回一个新的实例。

#二、获取 LocalDate 的方法

##1.获取当前的日期 LocalDate

	LocalDate now = LocalDate.now();  

2.根据年月日的值获取 LocalDate

	LocalDate.of(2016, 11, 30);  

##3.根据某年的第n天获取 LocalDate

	LocalDate.ofYearDay(2016, 300)  

##4.从时间纪元(1970年1月1日)开始第n天(负数表示在时间纪元前n天)获取 LocalDate

	LocalDate.ofEpochDay(365);  

#三、获取的数据

	LocalDate.now().getYear(); // 年份  
	LocalDate.now().getMonthValue(); // 月份(数值表示, 从1开始)  
	LocalDate.now().getMonth(); // 月份(英文[enum]表示)  
	LocalDate.now().getDayOfMonth(); // 日期(从1开始)  
	LocalDate.now().getDayOfYear(): // 当天所在这一年的第几天(从1开始)  
	LocalDate.now().getDayOfWeek(); // 星期几  
	LocalDate.now().lengthOfYear(); // 当年的天数  
	LocalDate.now().lengthOfMonth(); //当月的天数  
	LocalDate.now().toEpochDay(); // 与时间纪元(1970年1月1日)相差的天数,负数表示在时间纪元之前多少天  

#四、运算

	可以对年、月、日、周进行加减法运算:
	如果加(或减)日期超过当月的最大天数(或小于等于0)则月份对应增加(或减少);
	如果加(或减)月份超过12(或小于等于0)则年份对应增加(或减少);
	加减周数其实是对日期(天数)的加减;

##1.加法

	System.out.println("加法运算");  
	System.out.println("当前:" + LocalDate.now());  
	System.out.println("加1天:" + LocalDate.now().plusDays(1));  
	System.out.println("加1周:" + LocalDate.now().plusWeeks(1));  
	System.out.println("加1月:" + LocalDate.now().plusMonths(1));  
	System.out.println("加1年:" + LocalDate.now().plusYears(1));  

##2.减法

	System.out.println("减法运算");  
	System.out.println("当前:" + LocalDate.now());  
	System.out.println("减1天:" + LocalDate.now().minusDays(1));  
	System.out.println("减1周:" + LocalDate.now().minusWeeks(1));  
	System.out.println("减1月:" + LocalDate.now().minusMonths(1));  
	System.out.println("减1年:" + LocalDate.now().minusYears(1));  

##3.替换

	所有的数值必须合法;
	如果当月当天是闰年2月29日,替换年份为非闰年,则会变成2月28日;

	System.out.println("当前:" + LocalDate.now());  
	System.out.println("替换日期为1:" + LocalDate.now().withDayOfMonth(1));  
	System.out.println("替换天数为1:" + LocalDate.now().withDayOfYear(1));  
	System.out.println("替换月份为1:" + LocalDate.now().withMonth(1));  
	System.out.println("替换年份为1:" + LocalDate.now().withYear(1));  

##五、判断

	可以对两个 LocalDate 进行比较,可以判断一个日期是否在另一个日期之前或之后,或者判断两个日期是否是同年同月同日。

	System.out.println("当天:" + LocalDate.now());  
	System.out.println("是否在当天之前:" + LocalDate.now().minusDays(1).isBefore(LocalDate.now()));  
	System.out.println("是否在当天之后:" + LocalDate.now().plusDays(1).isAfter(LocalDate.now()));  
	System.out.println("是否在当天:" + LocalDate.now().isEqual(LocalDate.now()));  
	System.out.println("今年是否是闰年:" + LocalDate.now().isLeapYear());  
展开阅读全文
加载中

作者的其它热门文章

打赏
2
2 收藏
分享
打赏
0 评论
2 收藏
2
分享
返回顶部
顶部