package com.wisetv.selectmiddleware.util;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
public class DateTimeUtil {
/**
* 计算指定日期的所在周的周一
* @param localDate
* @return
*/
public static LocalDate dayOfWeekMonday(LocalDate localDate){
return localDate.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
}
/**
* 计算指定日期的周末
* @param localDate
* @return
*/
public static LocalDate dayOfWeekSunday(LocalDate localDate){
return localDate.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
}
/**
* 计算指定日期的月初
* @param localDate
* @return
*/
public static LocalDate dayOfMonthFirst(LocalDate localDate){
return localDate.with(TemporalAdjusters.firstDayOfMonth());
}
/**
* 计算指定日期的月末
* @param localDate
* @return
*/
public static LocalDate dayOfMonthLast(LocalDate localDate){
return localDate.with(TemporalAdjusters.lastDayOfMonth());
}
/**
* 计算指定日期的上个月月初
* @param localDate
* @return
*/
public static LocalDate dayOfLastMonthFirst(LocalDate localDate){
return localDate.minusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
}
/**
* 计算指定日期的上个月月末
* @param localDate
* @return
*/
public static LocalDate dayOfLastMonthLast(LocalDate localDate){
return localDate.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
}
/**
* 计算今年第一天
* @param localDate
* @return
*/
public static LocalDate dayOfYearFirst(LocalDate localDate){
return localDate.with(TemporalAdjusters.firstDayOfYear());
}
/**
* 计算今年最后一天
* @param localDate
* @return
*/
public static LocalDate dayOfYearLast(LocalDate localDate){
return localDate.with(TemporalAdjusters.lastDayOfYear());
}
/**
* 计算去年第一天
* @param localDate
* @return
*/
public static LocalDate dayOfLastYearFirst(LocalDate localDate){
return localDate.minusYears(1).with(TemporalAdjusters.firstDayOfYear());
}
/**
* 计算去年最后一天
* @param localDate
* @return
*/
public static LocalDate dayOfLastYearLast(LocalDate localDate){
return localDate.minusMonths(1).with(TemporalAdjusters.lastDayOfYear());
}
/**
* 根据格式化字符串格式化日期
* @param localDate
* @param pattern
* @return
*/
public static String formatDate(LocalDate localDate,String pattern){
return localDate.format(DateTimeFormatter.ofPattern(pattern));
}
/**
* 根据格式化字符串格式化日期
* @param localDate
* @param pattern
* @return
*/
public static String formatDateTime(LocalDateTime localDate,String pattern){
return localDate.format(DateTimeFormatter.ofPattern(pattern));
}
/**
* 将字符串转为日期
* @param date
* @param pattern
* @return
*/
public static LocalDate parseDate(String date,String pattern){
LocalDate parse = LocalDate.parse(date, DateTimeFormatter.ofPattern(pattern));
return parse;
}
/**
* 将字符串转为日期
* @param date
* @param pattern
* @return
*/
public static LocalDateTime parseDateTime(String date,String pattern){
LocalDateTime parse = LocalDateTime.parse(date, DateTimeFormatter.ofPattern(pattern));
return parse;
}
}