import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import org.apache.commons.lang.time.DateUtils; import org.quartz.impl.calendar.CronCalendar; public class TestCronCalender { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { // 允许执行的时间, 星期参数:"7" = "SAT",2 = MON // 【秒】 【分钟】 【小时】 【月中天】 【月】 【周中天(1-7)】 [【年(可省略)】] String excludeExpression; // 设置功能禁用时间表 // excludeExpression = "* * 0-7,18-23 ? * 7 2012"; // excludeExpression = "* * 0-7,18-23 ? * * 2013"; // excludeExpression = "* * 0-7,18-23 ? * *"; // excludeExpression = "* * 0-7,18-23 ? * 1,2,3,5,6"; excludeExpression = "* * * 1-3,8-13 4 ?"; CronCalendar calendar = new CronCalendar(excludeExpression); System.out.println(calendar.getTimeZone().getID()); System.out.println(calendar.getTimeZone().getDisplayName()); // System.out.println(TimeZone.getTimeZone("GMT-8").getID()); // 周三,10点 Date testDate = str2Date("2013-04-3 13:00:00"); boolean canDo = calendar.isTimeIncluded(testDate.getTime()); System.out.println("canDo :" + canDo); System.out.println("排除规则为:[" + calendar.getCronExpression() + "] " + date2String(testDate) + " 【功能】 " + (canDo ? "可以执行" : "禁止执行")); } public static Date str2Date(String dStr) { String[] parsePatterns = new String[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss,SSS", "yyyy-MM-dd", "yyyyMMdd" }; Date result = null; try { result = DateUtils.parseDate(dStr, parsePatterns); } catch (ParseException e) { } return result; } public static String date2String(Date date) { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(date); } }