gpt4 book ai didi

java - 如何找出 SimpleDateFormat 中解析异常的实际原因?

转载 作者:行者123 更新时间:2023-11-30 06:43:18 27 4
gpt4 key购买 nike

我有一个字符串形式的日期,我正在使用 SimpleDateFormat 验证它。

我有以下代码:

public boolean validateDate(String date) {

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
format.setLenient(false);
try {
Date dt = format.parse(date);
logger.info("DT:\t" + dt.toString());
String actDate = format.format(dt);
logger.info("actDate:\t" + actDate);
return actDate.equals(date);
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}

现在,如果我发送一个不具有相同格式的值,我的格式化程序会期望它(例如29-03--2008)或具有< strong>不正确的闰年(例如29-02-2007),我得到一个java.text.ParseException: Unparseable date:

我希望能够知道到底是什么导致了问题,以便我可以将适当的消息发送回调用该方法的人。但是,当异常发生时,我无法知道到底是什么导致了它(是否是无效的格式或不正确的值或其他原因)。

我可以使用 RegEx 检查格式是否正确,但是 SimpleDateFormat 已经在内部处理该检查。所以我不想再做同样的事情了。

有什么方法可以让我知道是什么原因导致了异常吗?

最佳答案

我怀疑日期格式错误的方式几乎有无数种。总的来说,如果有足够的时间,我们的代码可能会经历所有这些。

您可能会发现最简单(最好?)的方法就是在错误消息中包含格式错误的日期,以便用户可以看到他们做错了什么。

编辑:请注意转义输入的值,以免在系统中引入 XSS 或类似漏洞。

关于java - 如何找出 SimpleDateFormat 中解析异常的实际原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035779/

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