import lombok.extern.slf4j.Slf4j;标签:return,String,TimeStamp,日期,static,dateStr,timeStamp,转换,public From: https://www.cnblogs.com/heyi-77/p/17828561.html
import org.apache.commons.lang3.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@Slf4j
public class DateTimeUtil {
public static final String DATE_PATTERN = "yyyy-MM-dd";
public static final String DATE_PATTERN_YMD = "yyyyMMdd";
public static final String DATE_PATTERN_YMD_HM = "yyyy-MM-dd HH:mm";
public static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
Long createTime = 1650937800L;
String dateStr = timeStamptoDateStr(createTime, null);
log.info("=======dateStr:{} ", dateStr);
}
/**
* timeStampDateStr 时间戳转日期字符
*
* @param timeStamp timeStamp
* @param pattern pattern
* @return 日期格式字符
*/
public static String timeStamptoDateStr(Long timeStamp, String pattern) {
if (timeStamp == null) {
return null;
}
if (StringUtils.isEmpty(pattern)) {
pattern = DateTimeUtil.DATE_TIME_PATTERN;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
// 时间戳分为10位数到秒级时间戳、13位到毫秒级时间戳,如果转换到了1970年,是因为需要的13位时间戳却用10位时间戳传参
if (String.valueOf(timeStamp).length() == 10) {
return sdf.format(timeStamp * 1000);
}
return sdf.format(timeStamp);
}
/**
* timeStampToDate 时间戳转 Date
*
* @param timeStamp timeStamp
* @return Date
*/
public static Date timeStampToDate(long timeStamp) {
String dateStr = timeStamptoDateStr(timeStamp, null);
if (StringUtils.isEmpty(dateStr)) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.DATE_TIME_PATTERN);
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
log.error("===timeStampToDate RuntimeException:{}", e);
return null;
}
}
}