Java 正则实现各种日期格式化
paquete com.st.test; import java.text.dateformat; import java.text.simpledateFormat; import java.util.date; import java.util.hashmap; import java.util.regex.pattern; public class dateFormatUtile {@SupplesSwarnings ("finalmente") public static string formatDate (string datStr. DataRegformat.put ("^// d {4} // d+// d {1,2} // d+// d {1,2} // d+// d {1,2} // d+// d {1,2} // d+// d {1,2} // d*$ "," aaa 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} $ "," aaa yyy-mm-dd-hh-mm "); // 2014-03-12 12:05 DataRegformat .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 datEgformat.put (" ^// d {4} $ "", "aaa"); // 2014 dateRegformat.put ("^// d {14} $", "yyyymmddhhhmmss"); // 20140312120534 DateReGformat.put ("^// d {12} $ "," yyyymmddhhmm "); // 201403121205 dateRegFormat.put ("^// d {10} $ "," yyyymmddhh "); // 2014031212 detaRegformat.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} $", "aaa yyyy-mm-dd-hh-mm"); // 13: 05 拼接当前日期 DataRegformat.put ("^// d {2} // d+// d {1,2} // d+// d {1,2} $", "yy-mm-dd"); //14.10.18 (年. 月. 日) dateRegformat.put ("^// d {1,2} // d+// d {1,2} $", "yyyy-dd-mm");/////// /30.12 (日. 月) 拼接当前年份 DataRegformat.put ("^// d {1,2} // d+// d {1,2} // d+// d {4} $", "dd- Mm-yyyy "); // 12.21.2013 (日. 月. 年) cadena curdate = new SimpleDateFormat (" yyyyy-mm-dd "). Format (nueva fecha ()); DateFormat Formatter1 = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); DateFormat Formatter2; String DataReplace; Cadena strsuccess = ""; Pruebe {for (string key: dateRegformat.KeySet ()) {if (patrón.compile (key) .matcher (datestr) .matches ()) {formatter2 = new SimpleDateFormat (dateRegformat.get (key)); if (key.equals ("^// d {2} // s*: // s*// d {2} // s*: // s*// d {2} $") || Key .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 = datStr.replaceAll ("// d+", "-"); // System.out.println (DateRegExParr [i]); strsuccess = formatter1.format (formatter2.parse (dataReplace)); romper; }}} Catch (Exception e) {System.err.println ("----------------- 日期格式无效:"+DataStr); arrojar una nueva excepción ("日期格式无效"); } Finalmente {return strSuccess; }} public static void main (String [] args) {String [] datSarTray = 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 ",,,, "12.21.2013", "21.1", "13:05:34", "12:05", "14.1.8", "14.10.18"}; for (int i = 0; i <datErStrArray.length; i ++) {System.out.println (datErStrArray [i]+"---------------------- -------- ". }}}
以上所述就是本文的全部内容了 希望大家能够喜欢。 希望大家能够喜欢。