当前位置: 首页 > 面试题库 >

根据格式将字符串日期验证为有效日期的最佳方法是什么?

太叔睿
2023-03-14
问题内容

最近开始使用WEB UI。并遇到了日期字符串解析/验证的问题。我发现“ dd-mm-yyyy”的一些方法是:

  1. 匹配-验证不完整,不灵活。

(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])

  1. 有人在帖子中建议使用可能的日期字符串对Set进行预初始化-快速,有效,但也不灵活且占用内存

有没有更简单的方法,也许可以在公共库中使用?

请不要建议SimpleDateFormat :)

*Java 8的 *更新
正确答案是http://codingdict.com/questions/1963


问题答案:

如果您使用的是Java
8,那么DateTimeFormatter就是您想要的。javadoc的链接还包含示例代码和许多预定义的格式。此外,您还可以定义自己的。

这是一些代码,来自同一链接的示例

LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
String text = date.format(formatter);
LocalDate parsedDate = LocalDate.parse(text, formatter);

另外,此如何使用LocalDateTime解析/格式化日期?(Java8)问题得到了一些出色的答案。

编辑:感谢Basil Bourque 提供有关ThreeTen-
Backport项目的更新,以防万一需要使用与Java
8在某些较旧版本的Java中提供的功能几乎相同的功能。



 类似资料:
  • 问题内容: 我从API收到日期字符串,其格式为。 我目前正在使用正则表达式来验证字符串格式,这种方法可以正常工作,但是我可以看到某些情况,根据字符串,它可能是正确的格式,但实际上是无效的日期。即,例如。 PHP中是否有更好的方法来接收诸如这样的字符串,并确定该日期是否为该格式的有效日期? 问题答案: 您可以为此目的使用类: 测试用例:

  • 我从API接收一个日期字符串,它的格式为。 我目前正在使用正则表达式来验证字符串格式,它工作正常,但是我可以看到一些情况,根据字符串,它可能是正确的格式,但实际上是无效的日期。 在PHP中有没有更好的方法来获取字符串,例如,并判断它是否是格式的有效日期?

  • 我在presto上,把日期格式化为varchar,看起来像- 我如何转换这个?

  • 问题内容: 我支持一个工作中的通用库,该库对给定的字符串执行许多检查以查看其是否为有效日期。Java API,commons- lang库和JodaTime都具有可以解析字符串并将其转换为日期的方法,以告知您它实际上是否是有效日期,但我希望有一种方法在不实际创建日期对象的情况下进行验证(或使用JodaTime库的日期时间)。例如,这是一段简单的示例代码: 这对我来说似乎很浪费,我们正在丢弃产生的对

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 问题内容: 我正在使用代码将字符串格式化为日期 但是,如何将日期从格式转换为格式? 问题答案: 使用SimpleDateFormat#format(Date):