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

use*_*833 5 java date date-format

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

例如:输入为["01/02/2018","13/09/2018","8/11/2016"],则输出应为"dd/MM/yyyy".

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

Ole*_*.V. 5

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

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

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

[“01/02/2018”、“13/9/2018”、“8/11/2016”]

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

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

对于天和月:如果有一个出现带有前导零的(01并且02在你的例子)所有出现有两个数字,需要两个数字格式,使用ddMM。否则使用dor M(它将为数字打印足够的数字,并将解析一位数字和两位数字输入)。因为在您的示例中,月份被指定为9(一位数字,在第二个字符串中)和8日期,请使用dand M

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

快乐编码。