使用正则表达式java从时间戳中提取年份和月份

时间:2013-09-23 14:21:41

标签: java regex

我需要使用正则表达式从时间戳中提取年份和月份。

示例:

我有一个时间戳:20130923161057。我需要使用正则表达式提取年份2013和月份09

4 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用String.substring(beginIndex, endIndex)

但如果你想要正则表达式,它将是(\d{4})(\d{2}).* 请搜索从正则表达式匹配中提取组的示例。

答案 1 :(得分:1)

Pattern pattern = Pattern.compile("(\\d{4})(\\d{2})\\d{8}");
Matcher matcher = pattern.matcher("20130923161057");
if (matcher.find()) {
    int year = Integer.parseInt(matcher.group(1));
    int month = Integer.parseInt(matcher.group(2));
    // do something with year/month
}

答案 2 :(得分:0)

如果你真的需要正则表达式,你可以这样做:

Pattern p = Pattern.compile("(?<year>\\d{4,4})(?<month>\\d{2,2})");
Matcher m = p.matcher("20130923161057");
if (m.find())
{
    String year = m.group("year");
    String month = m.group("month");

    System.out.println(year + "    " + month);
}

答案 3 :(得分:0)

RegEx在这里并不实用。与诸如String#substring(int, int)之类的易于阅读的java函数相比,没有任何优势:

String timestamp = "20130923161057";

Sring year = timestamp.substring(0, 4);
String month = timestamp.substring(4, 6);

输出:

year = 2013
month = 09