import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
public class LocalDateTest {
public static void main(String[] args) {
//当前日期
LocalDate localDate = LocalDate.now();
LocalDate localDate1 = LocalDate.of(2017, 11, 10);
//也可以通过parse定义
//LocalDate now3 = LocalDate.parse("2018-01-12");
LocalDate localDate2 = LocalDate.of(2017, 11, 10);
//当前的年
System.out.println(localDate.getYear());
//当前的月份
System.out.println(localDate.getMonth());
//当前的月份
System.out.println(localDate.getMonthValue());
//当前日期是星期几
System.out.println(localDate.getDayOfWeek());
//当前的天数在一年中是第几天
System.out.println(localDate.getDayOfYear());
//当前日期是这个月的第几天
System.out.println(localDate.getDayOfMonth());
//每个月的天数
System.out.println(localDate.lengthOfMonth());
//这一年有多少天
System.out.println(localDate.lengthOfYear());
//是否是闰年
System.out.println(localDate.isLeapYear());
//当前日期减一个月
System.out.println(localDate.minusMonths(1));
//当前日期减一年
System.out.println(localDate.minusYears(1));
//当前日期减一个星期
System.out.println(localDate.minusWeeks(1));
System.out.println(localDate.MIN);
System.out.println(localDate.MAX);
//时间的判断判断先后
System.out.println(localDate.isBefore(localDate.minusMonths(1)));
System.out.println(localDate.isBefore(localDate.plusMonths(1)));
System.out.println(localDate.isAfter(localDate1));
//修改指定本地日期,获取新的对象,在原来的对象上指定时间修改
LocalDate localdate1 = localDate.withDayOfMonth(1);
LocalDate localdate2 = localDate.withDayOfYear(1);
LocalDate localdate3 = localDate.withMonth(1);
LocalDate localdate4 = localDate.withYear(2018);
System.out.println(localdate1);
System.out.println(localdate2);
System.out.println(localdate3);
System.out.println(localdate4);
LocalDate today = LocalDate.now();
// 取本月第1天:
LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth());
// 取本月第2天:
LocalDate secondDayOfThisMonth = today.withDayOfMonth(2);
// 取本月最后一天,再也不用计算是28,29,30还是31:
LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth());
// 取下一天:
LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1);
// 取2017年1月第一个周一
LocalDate firstMondayOf2015 = LocalDate.parse("2017-01-01").with(
TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
//比较二个时间是否相等
System.out.println(localDate1.equals(localDate2));
System.out.println(localDate1.equals(localdate2));
//比较二个时间的大小,返回是年,月,日的天数的差值
System.out.println(localDate1.compareTo(localDate2));
System.out.println(localDate1.compareTo(localdate2));
//二个日期相差的天数,年,月,等
long days = localdate2.until(localdate4, ChronoUnit.DAYS);
long hour = localdate2.until(localdate4, ChronoUnit.YEARS);
System.out.println(days);
System.out.println(hour);
}
}
getYear() int 获取当前日期的年份
getMonth() Month 获取当前日期的月份对象
getMonthValue() int 获取当前日期是第几月
getDayOfWeek() DayOfWeek 表示该对象表示的日期是星期几
getDayOfMonth() int 表示该对象表示的日期是这个月第几天
getDayOfYear() int 表示该对象表示的日期是今年第几天
withYear(int year) LocalDate 修改当前对象的年份
withMonth(int month) LocalDate 修改当前对象的月份
withDayOfMonth(int dayOfMonth) LocalDate 修改当前对象在当月的日期
isLeapYear() boolean 是否是闰年
lengthOfMonth() int 这个月有多少天
lengthOfYear() int 该对象表示的年份有多少天(365或者366)
plusYears(long yearsToAdd) LocalDate 当前对象增加指定的年份数
plusMonths(long monthsToAdd) LocalDate 当前对象增加指定的月份数
plusWeeks(long weeksToAdd) LocalDate 当前对象增加指定的周数
plusDays(long daysToAdd) LocalDate 当前对象增加指定的天数
minusYears(long yearsToSubtract) LocalDate 当前对象减去指定的年数
minusMonths(long monthsToSubtract) LocalDate 当前对象减去注定的月数
minusWeeks(long weeksToSubtract) LocalDate 当前对象减去指定的周数
minusDays(long daysToSubtract) LocalDate 当前对象减去指定的天数
compareTo(ChronoLocalDate other) int 比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚,
isBefore(ChronoLocalDate other) boolean 比较当前对象日期是否在other对象日期之前
isAfter(ChronoLocalDate other) boolean 比较当前对象日期是否在other对象日期之后
isEqual(ChronoLocalDate other) boolean 比较两个日期对象是否相等