从大字符串中提取日期

时间:2010-05-02 13:21:13

标签: datetime

我有像dhgsf20101211124422asddas这样的字符串。 此字符串包含yyyymmddhhmmss formate中的日期。 如何从上面的长字符串中获取该日期。 提前致谢

4 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:0)

答案 2 :(得分:0)

正则表达式应该可以获取可能的子字符串 - 然后是一些健全逻辑来测试任何其他有效性的日期

答案 3 :(得分:0)

我会使用正则表达式。假设它始终是一个14位数字,并且字符串中不会有任何其他正好14位数的长数字,那么很容易做到。

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