gpt4 book ai didi

Java 解析季度日期的最佳方法

转载 作者:行者123 更新时间:2023-12-01 17:11:34 27 4
gpt4 key购买 nike

我的日期为 APR-JUN10APR-JUN 2010,我需要输出为 2010-06-30 我需要在 java 中解析上述日期的最佳方法,并且应该灵活地添加更多此类日期格式。注意:APR-JUN10不会被任何java api解析,我们必须分解APR和JUN 10并获取日期为2010-06-30

最佳答案

您需要明确您的要求。

目前您告诉我们的只是 APR-JUN 2010 应翻译为 6 月的最后一天。

但是2010 年 2 月至 6 月呢?这也应该翻译成六月的最后一天吗?或者由于不是完整的季度,它应该抛出解析异常吗? JUL-JUN 2010 怎么样,第二个月在第一个月之前? 2010 年 5 月至 7 月怎么样——三个月,但也许您对“季度”的定义需要从一月、四月、七月、十月开始。

确定自己​​的要求后,您就可以开始进行转换。

现有的 DateFormat 实现不太可能为您完成这项确切的任务。您可能需要在自己的代码中解析该字符串。

如果唯一合法的选项是 JAN-MARAPR-JUNJUL-SEPOCT-DEC,那么您只需使用五路 switch 语句来设置 Calendar 对象上的月份和日期(第五种方式是抛出异常的 default: 情况.

如果您的要求更复杂,那么您的代码将需要更复杂。使用正则表达式将字符串分成几个部分将是一个很好的第一步。

Pattern patt = Pattern.compile("(.{3})-(.{3}) (\d+)");
Matcher matcher = patt.matcher(qaurterString);
if(! matcher.find() || m.groupCount() != 3) {
throw new ParseException(...)
}
String fromMonth = matcher.group(1);
String toMonth = matcher.group(2);
int year = Integer.parseInt(matcher.group(3));

我认为无论你做什么,你都必须从头开始编写解析代码。最简洁的最终结果是创建一个实现 DateFormat 的类。

关于Java 解析季度日期的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23540697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com