2010-05-02 89 views
1

我有类似dhgsf20101211124422asddas的字符串。 此字符串包含yyyymmddhhmmss合成日期。 如何从上面的长字符串中获取该日期。 在此先感谢从大字符串提取日期

+3

您使用哪种语言? – Freddy 2010-05-02 13:22:03

回答

0

正则表达式应该努力抓住可能的子 - 那么一些理智的逻辑测试日期的任何其他有效性

0

我会使用一个正则表达式。假设它总是一个14位数的数字,并且在字符串中不会有其他14位长的数字,这很容易做到。

有很多工具可以帮助您构建正则表达式,我通常使用http://www.redfernplace.com/software-projects/regex-builder/,即使对它们的工作方式没有太多的了解,它也很容易实现。

2

我会使用Java的DateFormat解析。它允许您使用ParsePosition对象通过字符串游行。

DateFormat format = new SimpleDateFormat("yyyymmddhhmmss"); 
ParsePosition pp = new ParsePosition(0); 
for (int c = 0; c < text.length(); c++) { 
    pp.setIndex(c); pp.setErrorIndex(-1); 
    Date d = format.parse(text, pp); 

    if (d != null) { 
     // Handle parsed date 

     // Only advance past the last parsed date if there was no error 
     if (pp.getErrorIndex() < 0) c = pp.getIndex() - 1; 
    } 
}