Java 日期和cron表达式 互转

本文介绍如何在SpringQuartz中实现用户自定义时间推送文章的功能,通过将日期转换为Cron表达式,以及反之亦然的转换方法。提供了一段示例代码,演示了日期与Cron表达式的相互转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring quartz 日期/cron表达式 转换
需求用户自定义时间推送文章,实现使用了spring quartz 做了一个任务管理模块 。下面代码是日期/cron表达式之间的转换

示例代码

package com.alex.callback;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {

    /**
     * 日期转化为cron表达式
     * @param date
     * @return
     */
    public static String getCron(java.util.Date  date){  
        String dateFormat="ss mm HH dd MM ? yyyy";  
        return  DateUtil.fmtDateToStr(date, dateFormat);  
    }  

    /**
     * cron表达式转为日期
     * @param cron
     * @return
     */
    public static Date getCronToDate(String cron) {  
        String dateFormat="ss mm HH dd MM ? yyyy";  
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);  
        Date date = null;  
        try {  
            date = sdf.parse(cron);  
        } catch (ParseException e) {  
            return null;
        }  
        return date;  
    }  

    /** 
     * Description:格式化日期,String字符串转化为Date 
     *  
     * @param date 
     * @param dtFormat 
     *            例如:yyyy-MM-dd HH:mm:ss yyyyMMdd 
     * @return 
     */  
    public static String fmtDateToStr(Date date, String dtFormat) {  
        if (date == null)  
            return "";  
        try {  
            SimpleDateFormat dateFormat = new SimpleDateFormat(dtFormat);  
            return dateFormat.format(date);  
        } catch (Exception e) {  
            e.printStackTrace();  
            return "";  
        }  
    } 
}

日期转cron(2018年12月06日13点48分32秒)

32 48 13 06 12 ? 2018

使用此cron抛异常

Cron expression must consist of 6 fields (found 7 in "0 * * * * ? *")

cron表达式只能是6位,最后一位表示年可以忽略不写。

32 48 13 06 12 ?

..........................................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值