2009-03-05

在java中从字符串文本中抽取剥离出日期时间

Posted in Java at 21:45 Author:仲远

标签:

有时候,你可能需要从一段字符串String或者文本中抽取出或者说是过滤出日期或者时间,可以使用如下程序:

  1. public String run(String text) {
  2.         String dateStr = text.replaceAll("\r?\n", " ");
  3.         dateStr = dateStr.replaceAll("\\s+", " ");       
  4.        
  5.         try {
  6.            
  7.             List matches = null;
  8.             Pattern p = Pattern.compile("(\\d{1,4}[-|\\\\/]\\d{1,2}[-|\\\\/]\\d{1,2} \\d{1,2}:\\d{1,2}:\\d{1,2})", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE);
  9.             Matcher matcher = p.matcher(dateStr);
  10.             if (matcher.find() && matcher.groupCount() >= 1) {
  11.                 matches = new ArrayList();
  12.                 for (int i = 1; i <= matcher.groupCount(); i++) {
  13.                     String temp = matcher.group(i);
  14.                     matches.add(temp);
  15.                 }
  16.             } else {
  17.                 matches = Collections.EMPTY_LIST;
  18.             }           
  19.            
  20.             if (matches.size() > 0) {
  21.                 return ((String) matches.get(0)).trim();
  22.             } else {
  23.                 return "";
  24.             }
  25.            
  26.         } catch (Exception e) {
  27.             return "";
  28.         }
  29.     }

这段程序目前的功能是从字符串中抽取出形式为”yyyy-MM-dd HH:mm:ss”或者是”yyyy/MM/dd HH:mm:ss”的日期时间。如果时间格式为缩写,还不能够处理,不过很容易可以进行扩展。

本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:

Leave a Comment

*
To prove you're a person (not a spam script), type the security text shown in the picture. Click here to regenerate some new text.
Click to hear an audio file of the anti-spam word