Java正则实现各种日期格式化
パッケージcom.st.test; java.text.dateformat; Import java.text.simpledateformat; Import java.util.date; Import java.util.hashmap; import java.util.regex.pattern; public class dateformatutil {@suppresswarnings( "fully")public static string formatdate(string datestr){hashmap <string、string> dateregformat = new hashmap <string、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} $"、 "yyyymm-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} $ "、" yyyymmddhhmm "); // 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-hhmm"); // 13: 05拼接当前日期DATEREGFORMAT.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(日。月)拼接当前年份dateregformat.put( "^// d {1,2} // d+// d {1,2} // d+// d {4} $"、 "dd- mm-yyyy "); // 12.21.2013(日。月。年)string curdate = new simpledateFormat(" yyyy-mm-dd ")。format(new date()); dateformat formatter1 = new simpledateFormat( "yyyy-mm-dd hh:mm:ss"); dateformat formatter2;文字列datereplace;文字列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} $")|| key .equals( "^// d {2} // s*:// s*// d {2} $")){// 13:05:34 - " + datestr; } else if(key.equals( "^// d {1,2} // d+// d {1,2} $")){//21.1(日。月)拼接当前年份データストリング= 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( "---------------日期格式无效:"+datestr);新しい例外をスロー( "日期格式无效"); }最後に{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:5 :34 "、" 2014年年3℃12℃13℃5℃34秒 "、" 201403121205 "、" 1234567890 "、" 20140312 "、" 201403 "、" 2000 13 33 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 <datestrarray.length; i ++){system.out.println(datestrarray [i]+"--------------------------------------------------------------------------------- -------- "。サブストリング(1,30-Datestrarray [i] .length())+ formatdate(datestrarray [i])); }}}
以上所述就是本文的全部内容了、希望大家能够喜欢。