Browse Source

cron工具类

ZhangManMan 2 years ago
parent
commit
e7da403ccd
1 changed files with 58 additions and 0 deletions
  1. 58 0
      src/main/java/com/sky/ioc/tool/CronUtils.java

+ 58 - 0
src/main/java/com/sky/ioc/tool/CronUtils.java

@@ -0,0 +1,58 @@
+package com.sky.ioc.tool;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * java日期转cron表达式工具类
+ * */
+public class CronUtils {
+
+    /**
+     * 每年时间format格式
+     */
+    private static final String DATEFORMAT_YEAR = "ss mm HH dd MM ? yyyy";
+
+    /**
+     * 每天时间format格式
+     */
+    private static final String DATEFORMAT_EVERYDAY = "ss mm HH * * ?";
+
+    /**
+     * 每周时间format格式
+     */
+    private static final String SUNDAY = "ss mm HH ? * 1";
+    private static final String MONDAY = "ss mm HH ? * 2";
+    private static final String TUESDAY = "ss mm HH ? * 3";
+    private static final String WEDNESDAY = "ss mm HH ? * 4";
+    private static final String THURSDAY = "ss mm HH ? * 5";
+    private static final String FRIDAY = "ss mm HH ? * 6";
+    private static final String SATURADY = "ss mm HH ? * 7";
+
+    public static String formatDateByPattern(Date date, String dateFormat) {
+        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
+        String formatTimeStr = null;
+        if (date != null) {
+            formatTimeStr = sdf.format(date);
+        }
+        return formatTimeStr;
+    }
+    /**
+     * 时间转换时间表达式
+     */
+    public static String getCron(Date date, String dateFormat) {
+        return formatDateByPattern(date, dateFormat);
+    }
+
+    public static void main(String[] args)throws Exception{
+        String cron = getCron(new Date(), SUNDAY);
+        System.out.println("每周六执行"+cron);
+
+        String cron1 = getCron(new Date(), DATEFORMAT_EVERYDAY);
+        System.out.println("每天执行"+cron1);
+
+        String cron2 = getCron(new Date(), DATEFORMAT_YEAR);
+        System.out.println("执行一次"+cron2);
+
+    }
+}