Java 正则实现各种日期格式化
Paket com.st.test; importieren java.text.dateFormat; import Java.text.SimpledateFormat; Import Java.util.date; import Java.util.hashMap; Import Java.util.regex.pattern; public class dateFormatutil {@SuppressWarnings ("endlich") 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 DataTeregformat .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} $ "," yyyymmdhhmmss "); // 20140312120534 DataNegformat.put ("^// D. D. D. D. 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-hh-mm"); // 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 (neues Datum ()); DateFormat Formatter1 = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); DateFormat Formatter2; String dateReplace; String Strsuccess = ""; try {für (String -Schlüssel: dateregFormat.keyset ()) {if (muster.comPile (Schlüssel) .Matcher (datester) .matches ()) {formatter2 = new SimpleDateFormat (DataTeregFormat.get (Schlüssel)); if (key.equals ("^// d {2} // s*: // s*// d {2} // s*: // s*// d {2} $") || Taste .equals ("^// d {2} // s*: // s*// d {2} $")) {// 13: 05: 34 或 13:05 拼接当前日期 datenESTR = Curdate + " -" + datester; } else if (key.equals ("^// d {1,2} // d+// d {1,2} $")) {//21.1 (日. 月) 拼接当前年份 datenESTR = curdate.substring (0, 4) + "-" + DETESTR; } datereplace = datestr.ReplaceAll ("// d+", "-"); // system.out.println (DataReGexparr [i]); strsuccess = formatter1.format (formatter2.Parse (datereplace)); brechen; }}} catch (Ausnahme E) {System.err.println ("------------------ 日期格式无效:"+datestrySt); Neue Ausnahme ("日期格式无效") auswerfen; } endlich {return Strsuccess; }} public static void main (String [] args) {String [] dreatestray = 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"}; für (int i = 0; i <dreatestrarray.length; i ++) {System.out.println (DEDESTELRAY [i]+"------------------------------------------ -------- ". Substring (1,30-DateStraRray [i] .Length ())+ Formatdat (DEDESTRARAY [i])); }}}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。 希望大家能够喜欢。