Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java中的任何字符串中提取日期时间模式?_Java_Jodatime - Fatal编程技术网

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

如何从Java中的任何字符串中提取日期时间模式?,java,jodatime,Java,Jodatime,如何从Java中的任何字符串中提取日期时间模式 模式为“yyyyymmddkm” 是否有任何Joda time helper方法用于此 字符串1:2014041507393_somefile.somemore 字符串2:\u somefile2014041507393。somemore使用以下正则表达式: ^\d{4}-\d{2}-\d{2}$ 如 你得自己把信处理掉。我认为Joda time没有任何方法可以为您做到这一点。首先使用正则表达式,然后在Java中解析字符串以供以后使用: if (

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

模式为
“yyyyymmddkm”

是否有任何Joda time helper方法用于此

字符串1:2014041507393_somefile.somemore


字符串2:\u somefile2014041507393。somemore

使用以下正则表达式:

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


你得自己把信处理掉。我认为Joda time没有任何方法可以为您做到这一点。

首先使用正则表达式,然后在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
}

使用
simpleDataFormat
parse
方法:

SimpleDateFormat format = SimpleDateFormat("YYYYMMddkm");
format.parse(string, pos);

javadoc说:当且仅当该字符串与给定的正则表达式匹配时返回:true。这不是意味着整个字符串需要匹配正则表达式吗?因为我们使用的是正则表达式而不是单个字符串,“字符串匹配给定的正则表达式”意味着字符串匹配正则表达式中的任何可能组合
SimpleDateFormat format = SimpleDateFormat("YYYYMMddkm");
format.parse(string, pos);