public static String translateToChinese(String cronExp) { if (cronExp == null || cronExp.length() < 1) { return "cron表达式为空"; } String[] tmpCorns = cronExp.split(" "); StringBuffer sBuffer = new StringBuffer(); if(tmpCorns.length == 6) { sBuffer.append(getPeriod(tmpCorns[4], "月")); //解析周 if(!tmpCorns[5].equals("*") && !tmpCorns[5].equals("?")) { char[] tmpArray = tmpCorns[5].toCharArray(); for(char tmp:tmpArray) { switch (tmp) { case '1': sBuffer.append("星期天"); break; case '2': sBuffer.append("星期一"); break; case '3': sBuffer.append("星期二"); break; case '4': sBuffer.append("星期三"); break; case '5': sBuffer.append("星期四"); break; case '6': sBuffer.append("星期五"); break; case '7': sBuffer.append("星期六"); break; case '-': sBuffer.append("至"); break; default: sBuffer.append(tmp); break; } } } //解析日 sBuffer.append(getPeriod(tmpCorns[3], "日")); //解析时 sBuffer.append(getPeriod(tmpCorns[2], "时")); //解析分 sBuffer.append(getPeriod(tmpCorns[1], "分")); //解析秒 sBuffer.append(getPeriod(tmpCorns[0], "秒")); } return sBuffer.toString(); }
public static String getPeriod(String str,String period){ StringBuffer stringBuffer=new StringBuffer(); if(!str.equals("*")) { stringBuffer.append(str).append(period); } else { stringBuffer.append("每").append(period); } return stringBuffer.toString(); }
public static void main(String[] args) { System.out.println(translateToChinese("0 0 2 1 * ?")); }