Java 正则实现各种日期格式化
paket com.st.test; impor java.text.dateFormat; impor java.text.simpledateFormat; impor java.util.date; import java.util.hashmap; import java.util.regex.pattern; Public Class DateFormatutil {@suppressWarnings ("akhirnya") public static String formatDate (String DATEST) {HashMap <String, String> DataRegFormat = new HashMap <String, String> (); 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*$ "," yyyy-mm-dd-hh-mm-s "); // 2014 年 3 月 12日 13 时 5分 34. /d {2} // d+// d {2} // d+// d {2} $ "," yyyy-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 DataRegFormat.put ("^// d {4} // d+// d {2} // d+// d {2} $", "yyyy-mm-dd" ); // 2014-03-12 DataRegFormat.put ("^// d {4} // d+// d {2} $", "yyyy-mm"); // 2014-03 DataRegFormat.put (" ^// d {4} $ "," yyyy "); // 2014 dateregformat.put ("^// d {14} $ "," yyyymmddhhmmss "); // 20140312120534 DataRegformat.put ("^// D 20140312120534 {12} $ "," yyyymmddhhmm "); // 201403121205 dateregformat.put ("^// d {10} $ "," yyyymmddhh "); // 2014031212 DataRegformat.put ("^// D {8} $ 2014031212 "," yyyymmdd "); // 20140312 dateregformat.put ("^// d {6} $ "," yyyymm "); // 201403 DataRegformat.put ("^// D {2} // S*: // s*// d {2} // s*: // s*// d {2} $ "," yyyy-mm-dd-hh-mm-ss "); // 13:05:34拼接当前日期 DataRegFormat.put ("^// D {2} // S*: // S*// D {2} $", "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 (年. /30.12 (日. Mm-yyyy "); // 12.21.2013 (日. 月. 年) string curdate = new SimpleDateFormat (" yyyy-mm-dd "). Format (tanggal baru ()); DateFormat formatter1 = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); DateFormat Formatter2; String DataReplace; String strsuccess = ""; coba {untuk (string key: dateregFormat.keyset ()) {if (pola.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 + " -" + DataStr; } else if (key.equals ("^// d {1,2} // d+// d {1,2} $")) {//21.1 (日. (0, 4) + "-" + DataStr; } daterplept = DataStr.ReplaceAll ("// d+", "-"); // System.out.println (DataRegExparr [i]); strsuccess = formatter1.format (formatter.parse (daterplace)); merusak; }}} catch (Exception e) {System.err.println ("----------------- 日期格式无效:"+DATEST); Lempar pengecualian baru ("日期格式无效"); } akhirnya {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: : 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"}; untuk (int i = 0; i <dateStrarray.length; i ++) {System.out.println (DateStrarray [i]+"---------------------- -------- ". Substring (1,30-datestrarray [i] .length ())+ formatDate (DateStrarray [i])); }}}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。