如何在Java中从任何字符串中提取日期时间模式?

3

如何在Java中从任何字符串中提取日期时间模式?

该模式为"YYYYMMddkm"

是否有任何Joda时间的帮助方法可用?

字符串1: 2014041507393_somefile.somemore

字符串2: _somefile2014041507393.somemore

4个回答

3

使用以下正则表达式:

^\d{4}-\d{2}-\d{2}$

如同

String date = "2014041507393_somefile.somemore";

if (str.matches("\\d{4}-\\d{2}-\\d{2}")) {
    ...
}

1
javadoc说:返回值:如果且仅当此字符串与给定的正则表达式匹配时为true。这难道不意味着整个字符串都需要与正则表达式匹配吗? - Lucas
由于我们使用的是正则表达式而不是单个字符串,因此“字符串与给定的正则表达式匹配”意味着该字符串与正则表达式中的任何可能组合匹配。 - Rafa Romero

0

首先在Java中使用正则表达式,然后解析字符串以备后用:

if (str.matches("\\d{4}-\\d{2}-\\d{2}")) {
     Date date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH).parse(str);
    System.out.println(date); // Example: Sat May 14 00:00:00 BOT 2014
}

0
使用SimpleDateFormat的parse方法:
SimpleDateFormat format = SimpleDateFormat("YYYYMMddkm");
format.parse(string, pos);

0

你必须自己处理掉字母。我认为Joda时间库没有提供任何方法来帮助你完成这个任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接