java - 将一个或两个日期的字符串转换为正确数量的 Java 日期实例

标签 java regex string date

我有以下可能的字符串模式(空格是可变的):

2-4 Jun
8-11 Jun
8 Jun-11 Jun
20-Jun
28 Jun-01 Jul
15-18 Jun

我想转换为 Java 日期,一个或两个。

任何正则表达式快捷方式吗?如果有影响的话,我正在迁移旧版 Excel 电子表格,该列未格式化)

最佳答案

如果我正确理解了你的问题,这里有一个片段可以做到这一点,或者至少为你提供基础知识:

Matcher m = Pattern.compile("(\\d+)-(\\d+)?\\s*(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)").matcher(input);
while (m.find()) {
    if (m.groupCount()==3) {
        int first = Integer.valueOf(m.group(1));
        int second = Integer.valueOf(m.group(2));
        String month = m.group(3);
        // DO something here
    } else {
        int first = Integer.valueOf(m.group(1));
        String month = m.group(2);
        // Do something here
    }
}

关于java - 将一个或两个日期的字符串转换为正确数量的 Java 日期实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280142/

相关文章:

java - 使用 smooks 将 EDI 消息映射到 XML 时遇到问题

java - 如何从 flickr 加载原始图像?

javascript - 如何在jquery中使用替换和正则表达式在大写字符之前插入空格

java - java.util.regex.Pattern 的正则表达式

python - 为什么 Simple String 的 Character 有这么多数组维度?

java - 使用 continue 和 stream filter 操作的区别

java - 尝试使用 import.jxl... 语句时出错

regex - 正则表达式 - 我需要使用正则表达式匹配路径中的最后一个反斜杠实例

python - 如何从一串数字和逗号中挑选出数百万?

ruby - 通过 Ruby 拆分字符串以获取所有子字符串的最佳方法是什么?