java - 我想在 java 中找到两个日期之间的计数,但是无论日期格式是什么,都应该接受日期

标签 java

<分区>

我想在 java 中找到两个日期之间的计数,但是应该接受日期,无论日期格式是什么。需要将两个日期作为参数提供给一个方法,该方法可以是不同的格式,但无论输入的格式是什么用户,它可以是“dd/M/yyyy”或“MM/dd/yyyy”或任何东西,它应该被接受。这是要求。

最佳答案

解析任何格式的日期都是一项非常复杂的任务,坦率地说,不可能 100% 准确。考虑这个日期 07/08/2010 - 它可能是 2010 年 8 月 7 日或 7 月 8 日,如果没有其他信息,就不可能说出它是哪一个。我曾经处理过以任何格式解析日期的任务。我的想法是你在一个外部文件中写下你想要支持的所有格式的列表,并将它们按照你想要考虑的顺序排列。然后在您的代码中,您获取要解析的字符串并尝试根据您的格式将其一一解析,直到您成功为止,如果它们都不适合,则声明该字符串不是有效日期。这种想法的优点是您可以在不更改代码的情况下添加或删除不同的格式。您可以为不同的客户提供不同的列表。更改列表的顺序,您可以确定优先级并确定您的字符串是否适合一种格式,然后采用哪种格式。在我们的 07/08/2010 示例中,对于基于美国的实现,您可以将 MM/dd/YYYY 放在 dd/MM/YYYY 之前,但对于欧洲实现,您将以相反的顺序放置格式。就是这个主意。这里是文章的链接,我在其中通过一些格式列表示例更详细地描述了这个想法:Java 8 java.time package: parsing any string to date

关于java - 我想在 java 中找到两个日期之间的计数,但是无论日期格式是什么,都应该接受日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58930501/

相关文章:

Java 8 Streams - 将固定数量的谓词过滤器应用于单个 Stream

java - 没有catch的嵌套try if有什么用吗?

java - Rmi 客户端不使用代码库

java - 这个for循环有什么问题?

java - 运行依赖于 java 的程序不起作用

java - JSON 和 AsyncTask 中的错误

java - 从 ADF 中的管理 Bean 设置只读属性

java - 将 API 代码与类一起放入 JAR 中有什么缺点吗?

Java 线程 Random.nextLong() 返回相同的数字

java - 在Java中将字节数组转换为字符串并将字符串转换为字节数组