寻找一种将日期列表(字符串类型)作为输入并返回可能的日期格式的方法。
例如:输入为[“ 01/02/2018”,“ 13/09/2018”,“ 8/11/2016”]然后 输出应为“ dd / MM / yyyy”。
这是示例之一。它应该能够通过java返回最适合给定输入的所有受支持的日期格式。
答案 0 :(得分:4)
我认为这种方法不容易使用。您需要自己编写代码。
这是可能的,尽管不一定总是可以给出唯一的答案。
在字符串中恰好需要三个数字,并在每个字符串中的数字之前,之间和之后使用相同的分隔符。从每个字符串中选取第一个,第二个和第三个数字。找到每个的最小值和最大值。我以你为例:
[“ 2018年1月2日”,“ 2018年13月9日”,“ 2016年8月11日”]
年份很容易,这是最小值和最大值在1900至2100之间的数字。请选择适合您情况的限制。月是不超过12的数字。在您的示例中,第二个数字是自第一个最大值不超过13的月份。如果所有非年数字都不超过12,则您无法决定,需要抛出异常之类的。确定年份和月份后,您尚未使用的数字就是该月的某天。确认它在1到31之间以进行验证。
在日期和月份中:如果某个事件的前导零(在您的示例中为01
和02
)和所有事件都有两位数字,则需要两位数字,使用dd
或MM
。否则,请使用d
或M
(它们将为该数字打印足够的数字,并将解析一位和两位数字输入)。因为在您的示例中,月份以9
(第二个字符串中的一位数字)和8
作为日给出,所以请使用d
和M
。
最终结果:d/M/uuuu
或d/M/yyyy
。
快乐的编码。