DateとQuartzのcron間の相互変換
1.概要
最近、Quartz関連のモジュールを書いていますが、DateとQuartzのcron間の相互変換を実現する必要があります.ネットで調べてみると見つかりませんでしたが、このようなブログを見つけました.http://hw1287789687.iteye.com/blog/2004202 自分にヒントを与えて、自分でこのブロガーを参考にした上で、cron転dateの方法を増やして、この文章を書きました.
2.実戦
直接コード:
テストは次のとおりです.
出力:
ほら、簡単でしょう.
最近、Quartz関連のモジュールを書いていますが、DateとQuartzのcron間の相互変換を実現する必要があります.ネットで調べてみると見つかりませんでしたが、このようなブログを見つけました.http://hw1287789687.iteye.com/blog/2004202 自分にヒントを与えて、自分でこのブロガーを参考にした上で、cron転dateの方法を増やして、この文章を書きました.
2.実戦
直接コード:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Quartz cron Date
* Created by zhangzh on 2016/8/2.
*/
public class CronDateUtils {
private static final String CRON_DATE_FORMAT = "ss mm HH dd MM ? yyyy";
/***
*
* @param date
* @return cron
*/
public static String getCron(final Date date){
SimpleDateFormat sdf = new SimpleDateFormat(CRON_DATE_FORMAT);
String formatTimeStr = "";
if (date != null) {
formatTimeStr = sdf.format(date);
}
return formatTimeStr;
}
/***
*
* @param cron Quartz cron
* @return Date
*/
public static Date getDate(final String cron) {
if(cron == null) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(CRON_DATE_FORMAT);
Date date = null;
try {
date = sdf.parse(cron);
} catch (ParseException e) {
return null;// ,
}
return date;
}
}
テストは次のとおりです.
public class Test {
public static void main(String[] args) {
Date now = new Date();
System.out.println(CronDateUtils.getCron(now));
String cron = "20 28 17 02 08 ? 2016";
Date cronDate = CronDateUtils.getDate(cron);
System.out.println("===================");
System.out.println(cronDate.toString());
}
}
出力:
30 15 16 05 08 ? 2016
===================
Tue Aug 02 17:28:20 CST 2016
ほら、簡単でしょう.