我有像dhgsf20101211124422asddas这样的字符串。 此字符串包含yyyymmddhhmmss formate中的日期。 如何从上面的长字符串中获取该日期。 提前致谢
答案 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/,即使不了解它们的工作方式也很容易。