我正在尝试解析三个数字,例如[2, 10, 2014]
使用LocalDate
新的 Java 8 日期和时间 API。
一切听起来都相对容易,对吧?好吧,也许不是。
额外的限制是我需要考虑语言环境,例如荷兰语和美国语使用不同的日期格式。
我唯一的输入是三个数字和语言环境,输出应该是格式正确的日期,格式为LocalDate
.
我认为我将需要以下步骤:
- 从 a 中获取一个
Locale
可以读取三个数字的转换器。 - 使用转换器,将三个数字转换为
LocalDate
.
我环顾四周,尤其是在DateTimeFormatter
课堂上,但似乎希望明确传递日、月和年的格式,这对我来说不是一个选择。
如何在 a 中转换三个数字(以任意顺序表示日、月和年)LocalDate
?
例子:
荷兰语格式:
Locale locale = new Locale("nl");
List<String> inputs = Arrays.asList("2", "10", "2014");
//output should equal
LocalDate.of(2014, 10, 2);
美式格式:
Locale locale = Locale.ENGLISH;
List<String> inputs = Arrays.asList("10", "2", "2014");
//output should equal
LocalDate.of(2014, 10, 2);
还要记住,我说的是数字的概念,但它们需要表示为字符串,以适应使用其他 Unicode 字符而不是数字 0-9 作为数字的语言。