gpt4 book ai didi

java - 有没有比将 leniency 设置为 false 更严格的日期解析方法?

转载 作者:行者123 更新时间:2023-11-30 11:28:29 25 4
gpt4 key购买 nike

我是 Java 编程的新手,我需要将获取的日期解析为字符串。格式必须是 dd-MM-yyyy 但我认为它与答案无关。

要将该字符串解析为 Calendar 对象,我按以下方式使用 SimpleDateFormat:

String example = "16-09-2013";
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
formato.setLenient(false);
Calendar cal = new GregorianCalendar();
cal.setTime(format.parse(date));

结果是意料之中的。

问题是它也会正确解析类似 "16-9-2013" 的内容(注意月份中没有前导 0),当发生这种情况时,我宁愿抛出异常并捕获它以适本地通知。

我被限制使用 Java SE 而没有任何添加(这会去掉 Joda Time 等),所以我想知道,是否有一种方法可以解析日期字符串,以便它只有在严格符合格式的情况下才会成功?

最佳答案

您可以使用正则表达式来检查字符串是否与预期格式匹配,Java SE 中内置了正则表达式 http://docs.oracle.com/javase/tutorial/essential/regex/

然后您可以使用上面的代码来检查它实际上是一个有效日期,而不是正则表达式无法捕获的无效日期,例如 2 月 31 日。

关于java - 有没有比将 leniency 设置为 false 更严格的日期解析方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831182/

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