java新时间api的工具类

基于新的时间类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();
    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容