我有以下可能的字符串模式(空格是可变的):
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/