Java 正则实现各种日期格式化
패키지 com.st.test; 가져 오기 java.text.dateformat; import java.text.simpledateformat; import java.util.date; import java.util.hashmap; import java.util.regex.pattern; 공개 클래스 DateFormatUtil {@suppresswarnings ( "finall") public static string formatdate (String Datest) {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} $", "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} $ ","yyyymmddhhmm "); // 201403121205 dateregformat.put ("^// d {10} $ ","yyyyymmddhh "); // 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 (1 1. 月) 拼接当前年份 dateregformat.put ( "^// d {1,2} // d+// d {1,2} // d+// d {4} $", "dd- mm-yyyy "); // 12.21.2013 (日 日. 月 月.) 문자열 curdate = new simpledateformat ("yyyy-mm-dd "). 형식 (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 (datest) .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 拼接当前日期 datest = curdate + " -" + datest; } else if (key.equals ( "^// d {1,2} // d+// d {1,2} $"))) {//21.1 (日. (0, 4) + "-" + datest; } datereplace = dateSt.Replaceall ( "// d+", "-"); // system.out.println (dateergexparr [i]); strsuccess = formatter1.format (formatter2.parse (datereplace)); 부서지다; }}} catch (예외 e) {System.err.println ( "------------------ 日期格式无效 :"+dateStrs); 새로운 예외를 던지십시오 ( "" "); } 마침내 {return strsuccess; }} public static void main (String [] args) {String [] dateStarray = 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 月 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]); }}}
以上所述就是本文的全部内容了, 希望大家能够喜欢。