Java 正则实现各种日期格式化
package com.st.test; import java.text.dateformat; import java.text.simpledateFormat; import java.util.date; import java.util.hashmap; import java.util.regex.pattern; classe publique DateFormatul {@SuppressWarnings ("enfin") public static string formatdate (String Datestr) {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-ss "); // 2014 年 3 月 12日 13 时 5分 34 秒 , 2014-03-12 12: 05: 34,2014 / 3/12 12: 5: 34 dataReRegFormat.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 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 dataregFormat.put (" ^ // d {14} $ "," yyyymmddhhmms "); // 20140312120534 datEregFormat.put (" ^ // d 20140312120534 {12} $ "," yyyymmddhhmm "); // 201403121205 dataregFormat.put (" ^ // d {10} $ "," yyymmmddhh "); // 2014031212 dataReRegFormat.put (" ^ // {8} $ "," yyyymmdd "); // 20140312 dataRegFormat.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 (年. 月. 日) dataRegFormat.put ("^ // d {1,2} // d + // d {1,2} $", "yyyy-dd-mm"); / /30.12 (日. 月) 拼接当前年份 dataRegFormat.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; String dataereplace; String strSuccess = ""; try {for (string key: datreegformat.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 或 13:05 拼接当前日期 Datestr = curdate + " - "+ datestr; } else if (key.equals ("^ // d {1,2} // d + // d {1,2} $")) {//21.1 (日. 月) 拼接当前年份 Datestr = curdate.substring (0, 4) + "-" + datestr; } datareplace = datestr.replaceALL ("// d +", "-"); // System.out.println (DataRegexParr [i]); strSuccess = formatter1.format (formatter2.parse (datareplace)); casser; }}} catch (exception e) {System.err.println ("----------------- 日期格式无效:" + datestr); lancer une nouvelle exception ("日期格式无效"); } enfin {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"}; pour (int i = 0; i <datestrArray.length; i ++) {System.out.println (DateStrArray [i] + "---------------------- -------- ". substring (1,30-datestraRray [i] .length ()) + formatdate (dateStrArray [i])); }}}
以上所述就是本文的全部内容了 , 希望大家能够喜欢。