基于新的时间类LocalDate,LocalDateTime,LocalTime,Instant,Duration等,常用格式化,不断更新,也可在下评论需求,看到会补上对应的实现
package com.reaps.common.utils;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
/**
* 日期,时间工具封装 ,基于1.8新的时间api
* @author zl
*
*/
public final class NewDateUtil {
//yyyy-MM-dd HH:mm:ss格式
private static final DateTimeFormatter NORMAL_DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//yyyy-MM-dd格式 LocalDate的默认格式
private static final DateTimeFormatter NORMAL_DATE_FORMAT_YY_MM_DD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//yyyyMMdd格式
private static final DateTimeFormatter NORMAL_DATE_FORMAT_YY_MM_DD_ = DateTimeFormatter.ofPattern("yyyyMMdd");
//yyyyMMddHHmmss格式
private static final DateTimeFormatter NORMAL_DATE_FORMAT_YYMMDDHHMISS = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
//默认时区id
private static final ZoneId DEFAULT_ZONEID=ZoneId.systemDefault();
private static String format(long date,DateTimeFormatter dateTimeFormatter) {
return format(date, DEFAULT_ZONEID, dateTimeFormatter);
}
private static String format(long date,ZoneId zoneId,DateTimeFormatter dateTimeFormatter) {
return LocalDateTime.ofInstant(Instant.ofEpochSecond(date), zoneId).format(dateTimeFormatter);
}
/**
* 正常日期格式化
*
* @param date 日期距离1970年1月1日秒数
* @return 格式化后的日期(2011-11-24)
*/
public static String dateFormatYYMMDD(long date) {
return format(date,NORMAL_DATE_FORMAT_YY_MM_DD);
}
/**
* 当前日期格式化
*
* @return 格式化后的日期(20111124)
*/
public static String getCurrentDateStr() {
return LocalDate.now().format(NORMAL_DATE_FORMAT_YY_MM_DD_);
}
/**
* 当前日期格式化
*
* @return 格式化后的日期(2011-11-24)
*/
public static String getCurrentDateYYYYMMDDStr() {
return LocalDate.now().format(NORMAL_DATE_FORMAT_YY_MM_DD);
}
/**
* 获取下一天的日期,即明天
*
* @return 格式化后的日期(2011-11-24)
*/
public static String getNextDayYYYYMMDDStr() {
return LocalDate.now().plusDays(1).format(NORMAL_DATE_FORMAT_YY_MM_DD);
}
/**
* 返回下一日凌晨距离1970年1月1日毫秒
* @return
*/
public static long getNextDayYYYYMMDDLong() {
return LocalDate.now().plusDays(1).atStartOfDay(DEFAULT_ZONEID).toInstant().toEpochMilli();
}
/**
* 日期格式化
*
* @param date 日期距离1970年1月1日秒数
* @return 格式化后的日期(2011-11-24 16:46:38)
*/
public static String dateFormat(long date) {
return format(date,NORMAL_DATE_FORMAT);
}
/**
* 正常日期格式化.
*
* @param date
* 日期距离1970年1月1日秒数
* @return 格式化后的日期(2011-11-24)
*/
public static String dateFormatYYYYMMDD(long date) {
return format(date,NORMAL_DATE_FORMAT_YY_MM_DD);
}
/**
* 获取当前距1970年1月1日秒数.
*
* @return 当前距1970年1月1日秒数.
*/
public static Long getTime() {
return Instant.now().getEpochSecond();
}
}