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

一. 概述

  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
}

参考资料

廖雪峰网站

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值