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 比較兩個日期對象是否相等