fxkh-txl-service/src/main/java/com/whdc/utils/DateUtils.java

102 lines
3.2 KiB
Java
Raw Normal View History

2023-09-13 17:15:39 +08:00
package com.whdc.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.SimpleTimeZone;
/**
* @author
* @date 2022-06-26 1:01
*/
public class DateUtils {
/**
* (yyyy-MM-dd HH:mm:ss)
*/
public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final ThreadLocal<SimpleDateFormat> sdfhmsS = new ThreadLocal<SimpleDateFormat>() {
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
}
};
public static final ThreadLocal<SimpleDateFormat> sdfYMDh = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd HH:mm"));
public static final ThreadLocal<SimpleDateFormat> sdfhms = new ThreadLocal<SimpleDateFormat>() {
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat(DATE_TIME_PATTERN);
}
};
public static final ThreadLocal<SimpleDateFormat> sdf_utc = new ThreadLocal<SimpleDateFormat>() {
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
}
};
public static final ThreadLocal<SimpleDateFormat> sdf_utc_sss = new ThreadLocal<SimpleDateFormat>() {
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
}
};
public static final ThreadLocal<SimpleDateFormat> sdf_Str = ThreadLocal.withInitial(() -> new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"));
public static LocalDateTime strToLDT(String str,String format){
return LocalDateTime.parse(str, DateTimeFormatter.ofPattern(format));
}
public static String dateToStr(Date date){
return sdfhms.get().format(date);
}
public static Date dateToStr(String dateString){
try {
return sdf_Str.get().parse(dateString);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
public static String dateToStr(Date date, ThreadLocal<SimpleDateFormat> format){
return format.get().format(date);
}
/**
* mongo isodate
*
* @param dateStr
* @return
*/
public static Date dateToISODate(String dateStr) throws ParseException {
//T代表后面跟着时间Z代表UTC统一时间
Date date = formatD(dateStr);
SimpleDateFormat format = sdfhms.get();
format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT")));
String isoDate = format.format(date);
return format.parse(isoDate);
}
public static Date formatD(String dateStr) throws ParseException {
return formatD(dateStr, DATE_TIME_PATTERN);
}
public static Date formatD(String dateStr, String format) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.parse(dateStr);
}
public static void main(String[] args) throws ParseException {
System.out.println(dateToISODate("2021-11-05T13:00:00Z"));
}
}