Java8 LocalDate常用API 每日 獲取當前日期 //獲取當前系統所屬時區的當前日期 LocalDate now = LocalDate.now(); //獲取指定日期 LocalDate date = LocalDate.of(2022, 10, 20); //獲取指定時區的當前日期 ...
Java8 LocalDate常用API
每日
獲取當前日期
//獲取當前系統所屬時區的當前日期
LocalDate now = LocalDate.now();
//獲取指定日期
LocalDate date = LocalDate.of(2022, 10, 20);
//獲取指定時區的當前日期
ZoneId zoneId = ZoneId.of("Africa/Cairo");
LocalDate utc = LocalDate.now(zoneId);
//獲取指定年份指定天數的日期
LocalDate ofYearDay = LocalDate.ofYearDay(2022, 100);
獲取日期所屬年份、月份、日期,第幾周、星期幾
LocalDate date = LocalDate.now();
//獲取日期所屬年份
int year = date.getYear();
System.out.println("當前日期所屬年份: " + year );
//獲取日期所屬月份
int monthValue = date.getMonthValue();
System.out.println("當前日期所屬月份: " + monthValue );
//獲取日期所屬月份的是幾號
int dayOfMonth = date.getDayOfMonth();
System.out.println("當前日期是幾號: " + dayOfMonth);
//獲取日期在當前年份下是第幾周
int week = date.get(WeekFields.ISO.weekOfYear());
System.out.println("當前日期是當前年份的第幾周: " + week);
//獲取日期是星期幾 value值從 1至7 即周一到周日
int dayOfWeek = date.getDayOfWeek().getValue();
System.out.println("當前日期是星期[" + dayOfWeek + "]");
日期比較
LocalDate startDate = LocalDate.of(2022,11,1);
LocalDate endDate = LocalDate.of(2022,11,5);
//日期大小比較
if(startDate.isBefore(endDate)) {
System.out.println("2022-10-5 是在 2022-11-05之 【前】 的");
}
if(endDate.isAfter(startDate)) {
System.out.println("2022-11-5 是在 2022-10-05之 【後】 的");
}
if(endDate.isEqual(LocalDate.of(2022,11,5))) {
System.out.println("兩個日期相等");
}
//獲取兩個僅相差一月以內的日期相差多少天 註意: 僅適用於兩個日期相差一個月以內
int result = Period.between(startDate, endDate).getDays();
// 區分正負 如果要取絕對值 可用 Math.abs();
if(result > 0) {
System.out.println("endDate 大於StartDate");
}
if(result < 0) {
System.out.println("endDate 小於StartDate");
}
//獲取兩個日期相差多少天 推薦使用
long day = endDate.toEpochDay() - startDate.toEpochDay();
每周
根據周獲取日期
//獲取指定周,指定周幾
int year = 2022; // 2022年
int week = 11; // 11周
DayOfWeek dayOfWeek = DayOfWeek.MONDAY; // 周一
//周數小於10在前面補個0
String numStr = week < 10 ? "0" + week : String.valueOf(week);
//2019-W01-01獲取第一周的周一日期,2019-W02-07獲取第二周的周日日期
String weekDate = String.format("%s-W%s-%s", year, numStr, dayOfWeek.getValue());
LocalDate date = LocalDate.parse(weekDate, DateTimeFormatter.ISO_WEEK_DATE);
System.out.println(date);
每月
int year = 2022;
int month = 2;
// 獲取指定年份的指定月份有多少天
LocalDate date = LocalDate.of(year,month,1);
int lengthOfMonth = date.lengthOfMonth();
System.out.println("2022年2月有" + lengthOfMonth + "天");
// 獲取指定月的最後一天
LocalDate monthLastDay = LocalDate.of(year, month, lengthOfMonth);