package com.xx.dubbo.dubboservice.utils;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.WeekFields;
import java.util.Date;
import java.util.Locale;
public class DateUtil {
//数据库格式的日期
public static final String SQL_MonTH = "yyyy-MM";
public static final String SQL_DATE = "yyyy-MM-dd";
public static final String SQL_TIME = "yyyy-MM-dd HH:mm:ss";
public static final String SQL_TIMESTAMP = "yyyy-MM-dd HH:mm:ss.SS";
//斜杠格式的日期
public static final String DATE = "yyyy/MM/dd";
public static final String TIMESTAMP = "yyyy/MM/dd HH:mm:ss.SS";
public static final String TIMESTAMP_SHORT = "yyyy/MM/dd HH:mm";
public static final String TIME = "HH:mm:ss";
public static final String TIME_SHORT = "HH:mm";
//不常用日期格式
public static final String CHINESEDATE = "yyyy年MM月dd日";
public static final String DATE_TIME = "yyyyMMddHHmmss";
public static final String DATE_TIME_DETAIL = "yyyyMMddHHmmssSS";
public static final String DATE_DAY = "yyyyMMdd";
public static final String DATE_HOUR = "yyyyMMddHH";
private DateUtil(){
}
public static LocalDateTime dateToLocalDateTime(Date date){
Instant instant = date.toInstant();
return instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
}
public static Date localDateTimeToDate(LocalDateTime localDateTime){
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
public static String dateTimeToStr(LocalDateTime localDateTime, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return localDateTime.format(formatter);
}
public static LocalDateTime strToLocalDateTime(String dateTimeStr, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return LocalDateTime.parse(dateTimeStr, formatter);
}
public static LocalDateTime getStartDateTimeWithHMS(LocalDateTime localDateTime) {
return LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MIN);
}
public static LocalDateTime getEndDateWithHMS(LocalDateTime localDateTime){
return LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MAX);
}
public static LocalDateTime getAfterYears(LocalDateTime localDateTime, int count){
return localDateTime.plusYears(count);
}
public static LocalDateTime getAfterMonths(LocalDateTime localDateTime, int count){
return localDateTime.plusMonths(count);
}
public static LocalDateTime getAfterDays(LocalDateTime localDateTime, int count){
return localDateTime.plusDays(count);
}
public static LocalDateTime getAfterMinutes(LocalDateTime localDateTime, int count){
return localDateTime.plusMinutes(count);
}
public static LocalDateTime getAfterSeconds(LocalDateTime localDateTime, int count){
return localDateTime.plusSeconds(count);
}
public static LocalDateTime getYearFirstDay(LocalDateTime localDateTime) {
return localDateTime.with(TemporalAdjusters.firstDayOfYear());
}
public static LocalDateTime getYearLastDay(LocalDateTime localDateTime) {
return localDateTime.with(TemporalAdjusters.lastDayOfYear());
}
public static LocalDateTime getMonthFirstDay(LocalDateTime localDateTime) {
return localDateTime.with(TemporalAdjusters.firstDayOfMonth());
}
public static LocalDateTime getMonthLastDay(LocalDateTime localDateTime) {
return localDateTime.with(TemporalAdjusters.lastDayOfMonth());
}
public static LocalDateTime getWeekFirstDay(LocalDateTime localDateTime, Locale locale) {
return localDateTime.with(WeekFields.of(locale==null?Locale.CHINA:locale).dayOfWeek(),1);
}
public static LocalDateTime getWeekLastDay(LocalDateTime localDateTime, Locale locale) {
return localDateTime.with(WeekFields.of(locale==null?Locale.CHINA:locale).dayOfWeek(),7);
}
public static int getYearDiff(LocalDateTime smallDateTime, LocalDateTime bigDateTime) {
return (int)smallDateTime.until(bigDateTime, ChronoUnit.YEARS);
}
public static int getMonthDiff(LocalDateTime smallDateTime, LocalDateTime bigDateTime) {
return (int)smallDateTime.until(bigDateTime, ChronoUnit.MONTHS);
}
public static int getDayDiff(LocalDateTime smallDateTime, LocalDateTime bigDateTime){
return (int)smallDateTime.until(bigDateTime, ChronoUnit.DAYS);
}
public static int getHourDiff(LocalDateTime smallDateTime, LocalDateTime bigDateTime){
return (int)smallDateTime.until(bigDateTime, ChronoUnit.HOURS);
}
public static int getMinutesDiff(LocalDateTime smallDateTime, LocalDateTime bigDateTime){
return (int)smallDateTime.until(bigDateTime, ChronoUnit.MINUTES);
}
public static int getSecondsDiff(LocalDateTime smallDateTime, LocalDateTime bigDateTime){
return (int)smallDateTime.until(bigDateTime, ChronoUnit.SECONDS);
}
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println(getAfterMonths(now, 1));
}
}
转载:https://www.cnblogs.com/xieyanke/p/12836268.html



