1、时间戳相互转换,2、日期对象与字符串相互转换
package com.baye.common.core.util;
import org.springframework.util.StringUtils;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
/**
* 日期时间工具类
* @author sunyiran
* @date 2018-12-07
*/
public class DateTimeUtils {
/**
* 根据时间获取时间戳
* @param dateTime
* @return
*/
public static Long dateTimeToTimestamp(LocalDateTime dateTime) {
if (dateTime == null) {
return null;
}
return dateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
}
/**
* 根据时间戳获取日期时间
* @param timestamp
* @return
*/
public static LocalDateTime timestampToDateTime(Long timestamp) {
return timestamp==null?null:LocalDateTime.ofEpochSecond(timestamp,0,ZoneOffset.ofHours(8));
}
/**
* 获取指定格式的日期字符串
* @param dateTime
* @param format 为null或者空时默认为yyyy-MM-dd HH:mm:ss
* @return
*/
public static String dateTimeToString(@NotNull LocalDateTime dateTime, String format) {
//时间转字符串格式化
if (StringUtils.isEmpty(format)) {
format = "yyyy-MM-dd HH:mm:ss";
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format,Locale.SIMPLIFIED_CHINESE);
return dateTime.format(formatter);
}
/**
* 根据日期时间字符串获取日期时间
* @param datetime
* @param format 为null或者空时默认为yyyy-MM-dd HH:mm:ss
* @return
*/
public static LocalDateTime stringToDateTime(@NotNull String datetime,String format) {
if (StringUtils.isEmpty(format)) {
format = "yyyy-MM-dd HH:mm:ss";
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(datetime,formatter);
}
public static void main(String[] args) {
System.out.println(stringToDateTime("2018-12-07 09:50:33",null));
}
}