函数中提供特殊日期格式的util工具类

需求

有些特殊的日志格式例如:
2021-12-19T16:00:00.000+00:00
Fri May 18 15:46:24 CST2016

这些无法装换成我们内部的时间日期类

要求提供两个方法:
parse 将String转成com.fxiaoke.functions.Date
format将com.fxiaoke.functions.Date转成String

实现

parse(String dateStr, String dateFormat)方法:

dateStr: 传入的日期时间的字符串
dateFormat: 传入日期时间字符串的日期时间格式,如yyyy.MM.dd等
函数作用:将传入dateFormat格式的字符串转化为com.fxiaoke.functions.Date类型
return: Date fsDate(com.fxiaoke.functions.Date)

format(Date date, String dateFormat)方法:

date: 传入的Date(com.fxiaoke.functions.Date)类型的date
dateFormat: 传入日期时间字符串的日期时间格式,如yyyy.MM.dd等
函数作用:将输入的Date类型都转为dateFormat格式的字符串
return: String timeStr

在这里插入图片描述
在这里插入图片描述
java代码:

package com.fxiaoke.functions.util;
import com.fxiaoke.functions.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.text.SimpleDateFormat;


public class DateUtil {
    private static DateTimeFormatter DATE_PATTERN_LINE = DateTimeFormatter.ofPattern("yyyy-MM-dd");

    private static final Logger LOGGER = LoggerFactory.getLogger(DateUtil.class);

    public static Long parseDateStr(String dateStr) {
        try {
            if (dateStr == null) {
                return null;
            }
            LocalDate localDate = LocalDate.parse(dateStr.trim(), DATE_PATTERN_LINE);
            ZonedDateTime zdt = localDate.atStartOfDay(ZoneId.systemDefault());
            return java.util.Date.from(zdt.toInstant()).getTime();
        } catch (Exception e) {
            LOGGER.error("parseDateStr error:{}",e.getMessage(),e);
        }
        return null;
    }

    //把所有的市面上的日期时间格式的String类型转成我们自己的日期时间格式
    public static Date parse(String dateStr, String dateFormat){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
        try {
            java.util.Date date = simpleDateFormat.parse(dateStr);
            Date fsDate = Date.of(date.getTime());
            return fsDate;
        } catch (Exception e) {
            LOGGER.error("parse error:{}", e.getMessage(), e);
        }
        return null;
    }

    public static String format(Date date, String dateFormat){
        Long timeStep = date.toTimestamp();
        java.util.Date dat = new java.util.Date(timeStep);
        String timeStr = new SimpleDateFormat(dateFormat).format(dat);
        return timeStr;
    }

    public static void main(String[] args) {
        String dateStr = "2021-03-08";
        Long dateTime = parseDateStr(dateStr);
        System.out.println(dateTime);

        String dateStr1 = "2022.06.17-16:08:56";
        Date date = parse(dateStr1, "yyyy.MM.dd-HH:mm:ss");
        System.out.println(date);

        Date date1 = Date.now();
        String dateFormat = "yyyy-MM-dd.HH";
        String fsDate = format(date1, dateFormat);
        System.out.println(fsDate);

    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值