Java 正则实现各种日期格式化
pacote com.st.test; importar java.text.dateFormat; importar java.text.simpledEformat; importar java.util.date; importar java.util.hashmap; importar java.util.regex.pattern; public class dateFormatutIL {@suppresswarnings ("finalmente") public static string formatdate (string datestr) {hashmap <string, string> DATeReGFormat = 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-ss "); // 2014 年 3 月 12日 13 时 5分 34 秒 , 2014-03-12 12: 05: 34 ,2014/3/12 12: 5: 34 DataRegFormat.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 DATREGFormat .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} $", "AAAAA-MM-DD" ); // 2014-03-12 DataRegformat.put ("^// d {4} // d+// d {2} $", "yyyy-mm"); // 2014-03 DATEREGFormat.put (" ^// d {4} $ "," yyyy "); // 2014 DATEREGFORMAT.put ("^// d {14} $ "," yyyymmddhmmss "); // 20140312120534 DATEREGFORMAT.put ("^// D {12} $ "," yyyymmddhhmm "); // 201403121205 DATEREGFORMAT.put ("^// d {10} $ "," yyyymmddhhh "); // 2014031212 DATEREGFORMAT.put ("^// d {8} $ "," 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} $", "AAAAA-MM-DD-HH-MM"); // 13: 05 拼接当前日期 DataRegFormat.put ("^// d {2} // d+// d {1,2} // d+// d {1,2} $", "yy-mm-dd"); //14.10.18 (年. 月. 日) DataRegFormat.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 (日 月. 月. 年) coceira de string = new SimpleDateFormat (" yyyy-mm-dd "). Formato (new Date ()); DateFormat Formatter1 = new SimpleDateFormat ("AA YYYY-MM-DD HH: MM: SS"); DateFormat Formatter2; String datEreplace; String strsuccess = ""; tente {for (string key: DATeRegformat.KeySet ()) {if (padrony.compile (key) .matcher (dateST) .matches ()) {formatter2 = new SimpleDateFormat (DATEREGFormat.get (key)); if (key.equals ("^// d {2} // s*: // s*// d {2} // s*: // s*// d {2} $") || chave .equals ("^// d {2} // s*: // s*// d {2} $")) {// 13: 05: 34 或 13:05 拼接当前日期 DATESTET = Curdate + " -" + DATEST; } else if (key.equals ("^// d {1,2} // d+// d {1,2} $")) {//21.1 (日. (0, 4) + "-" + DATEST; } DATeRplace = DATEST.ReplaceAll ("// D+", "-"); // System.out.println (DATeRegexparr [i]); strsuccess = formatter1.format (formatter2.parse (datereplace)); quebrar; }}} catch (Exceção e) {System.err.println ("------------------- 日期格式无效:"+DATEST); lançar uma nova exceção ("日期格式无效"); } finalmente {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 : 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 <datestraRray.length; i ++) {System.out.println (DataStarRray [i]+"-------------------------- -------- ". }}}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。