java - 使用日期样本作为输入进行日期格式预测

标签 java date date-format

寻找一种将日期列表(字符串类型)作为输入并返回可能的日期格式的方法。

for example: input is ["01/02/2018","13/09/2018","8/11/2016"] then output should be "dd/MM/yyyy".

这是其中一个例子。它应该能够返回最适合给定输入的 java 支持的所有日期格式。

最佳答案

我不认为这种方法是现成的。您需要自己编写代码。

这是可能的,尽管不一定总能给出唯一的答案。

要求字符串中恰好包含三个数字,并且每个字符串中的数字之前、之间和之后的分隔符相同。从每个字符串中取出第一个、第二个和第三个数字。找出每个的最小值和最大值。我以你为例:

["01/02/2018","13/9/2018","8/11/2016"]

  • 第一个数字最小为 1,最大为 13
  • 第二个数字最少 2 到最多 11
  • 第三个数字的最小值是 2016 年,最大值是 2018 年

年份很简单,即最小值和最大值在 1900 到 2100 之间的数字。选择适合您情况的限制。月份是不超过 12 的数字。在您的示例中,第二个数字是自第一个数字最大为 13 以来的月份。如果没有一个非年份数字超过 12,则您无法决定并且需要抛出异常之类的。一旦你决定了年份和月份,你还没有使用的数字就是这个月的第几天。检查它是否在 1 到 31 之间以进行验证。

对于日和月:如果出现前导零(0102 在您的示例中) 所有出现有两位数,格式要求两位数,使用ddMM。否则使用 dM(这将为数字打印足够的数字并将解析一位和两位输入)。因为在您的示例中,月份被指定为 9(一位数字,在第二个字符串中)并且 8 被指定为日,因此请使用 d M.

最终结果:d/M/uuuud/M/yyyy

关于java - 使用日期样本作为输入进行日期格式预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54107928/

相关文章:

java - 如何使用 JAX-B 从 XML 读取所选类的对象(多态)

java - 为什么 PMF.java 是 'final' 类?

日期等于英国日期格式的 MySQL SELECT 语句

java - 如何为Java bean属性设置新值(日期)?

java - 当给 NamedParameterJdbcOperation 获取日期作为参数时,JDBC 查询不起作用(在参数映射中)

java - getDateTimeInstance 24小时样式

java - 将字符串转换为日期 - 日期验证

javascript - 将 JavaScript 日期格式设置为 yyyy-mm-dd

java html 到 xml saxbuilder jdom2

java - Java 线程二叉搜索树