Java 正则实现各种日期格式化
пакет com.st.test; import java.text.dateformat; import java.text.simpledateformat; import java.util.date; импорт java.util.hashmap; import java.util.regex.pattern; открытый класс DateFormatutil {@SuppressWarnings ("inlocal") public static String formatdate (String datestr) {hashmap <string, string> dateregformat = new hashmap <string> (); dateregformat.put ("^// d {4} // d+// d {1,2} // d+// d {1,2} // d+// d {1,2} // d+// d {1,2} // d+// d {1,2} // d*$ "," yyyy-mm-dd-hh-mm-ss "); // 2014 年 3 月 12日 13 时 5分 34 秒 , 2014-03-12 12: 05: 34,2014/3/12 12: 5: 34 DatereGformat.put ("^// d {4} // d+// d {2} // d+// /d {2} // d+// d {2} // d+// d {2} $ "," yyyy-mm-dd-hh-mm "); // 2014-03-12 12:05 DatereGformat .put ("^// d {4} // d+// d {2} // d+// d {2} // d+// d {2} $", "yyyy-mm-dd-hh" ); // 2014-03-12 12 dateregformat.put ("^// d {4} // d+// d {2} // d+// d {2} $", "yyyy-mm-dd" ); // 2014-03-12 dateregformat.put ("^// d {4} // d+// d {2} $", "yyyy-mm"); // 2014-03 dateregformat.put (" ^// d {4} $ "," yyyy "); // 2014 dateregformat.put ("^// d {14} $ "," yyyymmddhhmmss "); // 20140312120534 dateRegFormat.put ("^// d {12} $ "," yyyymmddhmm "); // 201403121205 dateregformat.put ("^// d {10} $ "," yyyymmddhh "); // 2014031212 dateregformat.put ("^// d {8} $ "," yyyymmdd "); // 20140312 dateregformat.put ("^// d {6} $ "," yyyymm "); // 201403 dateregformat.put ("^// d {2} // s*: // s*// d {2} // s*: // s*// d {2} $ "," yyyy-mm-dd-hh-mm-ss "); // 13:05:34拼接当前日期 dateregformat.put ("^// d {2} // s*: // s*// d {2} $", "yyyy-mm-dd-hh-mm"); // 13: 05 拼接当前日期 dateregformat.put ("^// d {2} // d+// d {1,2} // d+// d {1,2} $", "yy-mm-dd"); //14.10.18 (年. /30.12 (日. 月) 拼接当前年份 dateregformat.put ("^// d {1,2} // d+// d {1,2} // d+// d {4} $", "dd- Mm-yyyy "); // 12.21.2013 (日. DateFormat formatter1 = new SimpleDateFormat ("yyyy-mm-dd HH: MM: SS"); DateFormat Formatter2; String DateReplace; String strsuccess = ""; try {for (string key: dateregformat.keyset ()) {if (pattern.compile (key) .matcher (datestr) .matches ()) {formatter2 = new SimpleDateFormat (datereGformat.get (key)); if (key.equals ("^// d {2} // s*: // s*// d {2} // s*: // s*// d {2} $") || .equals ("^// d {2} // s*: // s*// d {2} $")) {// 13: 05: 34 或 13:05 拼接当前日期 Datestr = curdate + " -" + datestr; } else if (key.equals ("^// d {1,2} // d+// d {1,2} $")) {//21.1 (日. 月) 拼接当前年份 datestr = curdate.substring (0, 4) + "-" + datestr; } dateReplace = datestr.replaceall ("// d+", "-"); // System.out.println (dateregexparr [i]); strsuccess = formatter1.format (formatter2.parse (dateReplace)); перерыв; }}} catch (Exception e) {System.err.println ("----------------- 日期格式无效:"+datest); бросить новое исключение ("日期格式无效"); } наконец {return strsuccess; }} public static void main (string [] args) {string [] datestrarray = new String [] {"2014-03-12 12:05:34", "2014-03-12 12:05", "2014- 03-12 12 "," 2014-03-12 "," 2014-03 "," 2014 "," 20140312120534 "," 2014/03/12 12:05:34 "," 2014/3/12 12: 5 : 34 "," 2014 年 3 月 12日 13 时 5 分 34 秒 "," 201403121205 "," 1234567890 "," 20140312 "," 201403 "," 2000 13 33 13 13 13 "," 30.12.2013 "," 201403 "," 2000 13 33 13 13 13 "12.21.2013", "21.1", "13:05:34", "12:05", "14.1.8", "14.10.18"}; для (int i = 0; i <datestrarray.length; i ++) {System.out.println (datestrarray [i]+"---------------------------------- -------- ". substring (1,30-Datestrarray [i] .length ())+ formatdate (datestrarray [i])); }}}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。