日期·String类型和Date类型的转换

文章目录

    • 一. 概述
    • 二. 日期时间工具类
      • 三.Test
    • 参考资料

一. 概述

  1. 在开发过程中,很多时候都需要用到日期,日期类在后端Java类中的工具类是java.util.Date,但前端展示时并不一定是什么格式的日期形式(比如yyyy-MM-dd,又或yyyy-MM-dd HH:mm:ss,又或其他形式),因此在后端代码编写时,需要将前端传入的String类型日期形式转换为Date(并存入数据库),又或将日期数据从数据库中取出来,然后转换成前端需要的String类型。由于上述需求较多,我也写了一个工具类解决这种场景。

二. 日期时间工具类

public class DateUtil {
    public static final String DATE_YYYYMMDD = "yyyyMMdd";
    public static final String DATE_YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss";
    public static final String DATE_YYYYMMDDHHMM = "yyyy-MM-dd HH:mm";
    private static final String TIME_INTERVAL = "%s~%s";
    
	/**
     * string转换为Date
     * @param dateStr date字符串
     * @param suffixTime date字符串后缀
     * @param pattern 转换格式
     * @return
     */
    public static Date stringToDate(String dateStr, String suffixTime, String pattern){
        if(StringUtils.isEmpty(dateStr)){
            return null;
        }

        try{
            SimpleDateFormat format = new SimpleDateFormat(pattern);
            return format.parse(dateStr+suffixTime);
        }catch (Exception e){
            LOGGER.error("DateUtil.stringToDate | 日期转换异常!dateStr={},pattern={}",dateStr,pattern);
            return null;
        }
    }
    
	/**
     * Date转为string
     * @param date
     * @param pattern
     * @return
     */
    public static String dateToString(Date date,String pattern){
        if(date==null){
            return null;
        }

        try{
            SimpleDateFormat format = new SimpleDateFormat(pattern);
            return format.format(date);
        }catch (Exception e){
            LOGGER.error("DateUtil.dateToString | 日期转换异常!date={},pattern={}",date,pattern);
            return null;
        }
    }

    /**
     * 获取开始时间~结束时间
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param pattern
     * @return
     */
    public static String dateToStringInterval(Date startDate, Date endDate, String pattern){
        try{
            SimpleDateFormat format = new SimpleDateFormat(pattern);
            return String.format(TIME_INTERVAL,format.format(startDate),format.format(endDate));
        }catch (Exception e){
            LOGGER.error("DateUtil.dateToStringInterval | 日期转换异常!startDate={},endDate={},pattern={}",startDate,endDate,pattern);
            return null;
        }

    }
}

三.Test

public static void main(String[] args) {
 	System.out.println(stringToDate("2019-03-12 23:12:02","",DateUtil.DATE_TIME_PATTERN)); // Tue Mar 12 23:12:02 CST 2019
    System.out.println(stringToDate("2019-03-12"," 00:00:00",DateUtil.DATE_TIME_PATTERN)); // Tue Mar 12 00:00:00 CST 2019
}

参考资料

廖雪峰网站

你可能感兴趣的:(Java)