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

时间:2019-01-09 10:24:18

标签: java date date-format

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

  

例如:输入为[“ 01/02/2018”,“ 13/09/2018”,“ 8/11/2016”]然后   输出应为“ dd / MM / yyyy”。

这是示例之一。它应该能够通过java返回最适合给定输入的所有受支持的日期格式。

1 个答案:

答案 0 :(得分:4)

我认为这种方法不容易使用。您需要自己编写代码。

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

在字符串中恰好需要三个数字,并在每个字符串中的数字之前,之间和之后使用相同的分隔符。从每个字符串中选取第一个,第二个和第三个数字。找到每个的最小值和最大值。我以你为例:

  

[“ 2018年1月2日”,“ 2018年13月9日”,“ 2016年8月11日”]

  • 第一个数字的最小值为1,最大值为13
  • 第二个数字har min 2和max 11
  • 第三个数字的最小值为2016,最大值为2018

年份很容易,这是最小值和最大值在1900至2100之间的数字。请选择适合您情况的限制。月是不超过12的数字。在您的示例中,第二个数字是自第一个最大值不超过13的月份。如果所有非年数字都不超过12,则您无法决定,需要抛出异常之类的。确定年份和月份后,您尚未使用的数字就是该月的某天。确认它在1到31之间以进行验证。

在日期和月份中:如果某个事件的前导零(在您的示例中为0102所有事件都有两位数字,则需要两位数字,使用ddMM。否则,请使用dM(它们将为该数字打印足够的数字,并将解析一位和两位数字输入)。因为在您的示例中,月份以9(第二个字符串中的一位数字)和8作为日给出,所以请使用dM

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

快乐的编码。