importcom.anchi.car.coresystem.consumer.dao.entity.CitySupportDO;importcom.anchi.car.coresystem.consumer.dao.mapper.CitySupportMapper;importcom.anchi.car.coresystem.consumer.dao.query.CitySupportQuery;importorg.apache.commons.lang3.StringUtils;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Component;importjavax.annotation.Resource;importjava.text.SimpleDateFormat;importjava.time.Instant;importjava.time.LocalDateTime;importjava.time.ZoneId;importjava.time.ZonedDateTime;importjava.time.format.DateTimeFormatter;importjava.util.Calendar;importjava.util.Date;importjava.util.Locale;/***@author: shaoshuaui.zheng
* @description:
* @date: 2019/1/2 18:28*/@Componentpublic classDateUtil {private static final String LANG_ZH_CN = "zh-cn";/*** 根据语言类型格式化一个字符串日期
*
*@paramdate 格式化日期
*@paramlang 语言类型 zh-cn 中文 en 英文
*@return格式化的日期*/
publicString dateFormat(Date date, String lang) {
String dateTimeFormatter;if(StringUtils.equalsIgnoreCase(LANG_ZH_CN, lang)) {
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
dateTimeFormatter=dateFormat.format(date);
}else{
SimpleDateFormat dateFormat= new SimpleDateFormat("MMM d yyyy HH:mm:ss", Locale.ENGLISH);
dateTimeFormatter=dateFormat.format(date);
}returndateTimeFormatter;
}/*** 根据语言类型格式化一个字符串日期
*
*@paramlocalDateTime 格式化日期
*@paramlang 语言类型 zh-cn 中文 en 英文
*@return格式化的日期*/
publicString dateFormat(LocalDateTime localDateTime, String lang) {
String dateTimeFormatter;if(StringUtils.isBlank(lang)) {
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
dateTimeFormatter=localDateTime.format(formatter);returndateTimeFormatter;
}if(StringUtils.equalsIgnoreCase(LANG_ZH_CN, lang)) {
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
dateTimeFormatter=localDateTime.format(formatter);
}else{
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm", Locale.ENGLISH);
dateTimeFormatter=localDateTime.format(formatter);
}returndateTimeFormatter;
}/*** 返回格式化好的时间:2019-01-17
*
*@paramdate
*@return
*/
publicString simpleDateFormat1(Date date) {
SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd");returnsimpleDateFormat.format(date);
}/*** 返回格式化好的时间:2019-01-1 02:12
*
*@paramdate
*@return
*/
public staticString middleDateFormat(Date date) {
SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm");returnsimpleDateFormat.format(date);
}publicString middleLocalDateTimeFormat(LocalDateTime localDateTime) {
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");returnlocalDateTime.format(formatter);
}/*** 转换当地时间为北京时区
*
*@paramlocalDateTime 当地时间
*@paramtoZoneId 当地时区id
*@return北京时间*/
publicLocalDateTime conversionToBeijingDateTime(LocalDateTime localDateTime, String toZoneId) {//转换当前时间为当地时区
ZonedDateTime dateAndTimeInLocal =ZonedDateTime.of(localDateTime, ZoneId.of(toZoneId));//转换为北京时间:
ZonedDateTime dateTimeInBeijing = dateAndTimeInLocal.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));returndateTimeInBeijing.toLocalDateTime();
}/*** 转换当地时间为北京时区
*
*@paramlocalDateTime 当地时间戳
*@paramtoZoneId 当地时区id
*@return北京时间*/
publicLocalDateTime conversionToBeijingDateTime(Long localDateTime, String toZoneId) {//时间戳转为当地时间
Instant instant =Instant.ofEpochMilli(localDateTime);
LocalDateTime localDateTime1=LocalDateTime.ofInstant(instant, ZoneId.of(toZoneId));//转换当前时间为当地时区
returnconversionToBeijingDateTime(localDateTime1, toZoneId);
}/*** 相差多少分钟
*
*@paramfromDate
*@paramtoDate
*@return
*/
public static intgetIntervalMinutes(Date fromDate, Date toDate) {return (int) ((toDate.getTime() - fromDate.getTime()) / (60 * 1000));
}
}