日期数据转换字符串工具Java类分享

import org.apache.commons.lang3.StringUtils;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;

/**
 * <br>  日期格式处理工具类
 **/
public class DateUtil {

    /**
     * Utility classes should not have public constructors
     */
    private DateUtil() {
    }

    private static final DateTimeFormatter DATE_FOMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
    private static final DateTimeFormatter YYYYMMDD = DateTimeFormatter.ofPattern("yyyy/MM/dd", Locale.CHINA);


    /**
     * <br> 计算当前日期之前多少天的日期
     * @param days      天数
     * @param dateFomat 日期格式
     **/
    public static synchronized String getBeforeCurrentDate(int days, DateTimeFormatter dateFomat) {
        //获取当前日期
        LocalDateTime localDateTime = LocalDateTime.now();
        //获取当前日期之前N天的日期
        LocalDateTime beforeDateTime = localDateTime.minusDays(days);
        //将日期进行格式化
        return beforeDateTime.format(dateFomat);
    }


    /**
     * <br> 将日期转为日期字符串
     * @param date       日期
     * @param dateFormat 日期时间格式化
     **/
    public static String transDateToDateStr(Date date, DateTimeFormatter dateFormat) {
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();
        return instant.atZone(zoneId).format(dateFormat);
    }

    /**
     * <br>  字符串转化成日期
     * @param dateStr 日期字符串
     * @param pattern 日期格式
     **/
    public static Date transDateStrToDate(String dateStr, String pattern) {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
        LocalDateTime localDateTime = LocalDateTime.parse(dateStr, dateTimeFormatter);
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zdt = localDateTime.atZone(zoneId);
        return Date.from(zdt.toInstant());
    }


    /**
     * <br> 将日期转为日期字符串
     * @param date 日期
     **/
    public static String transDateToDateStr(Date date) {
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();
        return instant.atZone(zoneId).format(DATE_FOMAT);
    }


    /**
     * <br> 将日期转为日期字符串YYYY/MM/dd
     * @param date 日期
     **/
    public static String transDateToSimpleStr(Date date) {
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();
        return instant.atZone(zoneId).format(YYYYMMDD);
    }

    /**
     * <br>  判断字符串是否为数字
     * @param numericStr 数值类型字符串
     **/
    public static boolean isNumeric(String numericStr) {
        boolean isNumeric = false;
        if (StringUtils.isNotBlank(numericStr)) {
            isNumeric = numericStr.matches("^[0-9]*$");
        }
        return isNumeric;
    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值