新しいJava 8 Date and Time APIを使用する[2, 10, 2014]
など、3つの数値を解析しようとしています。LocalDate
すべてが比較的簡単に聞こえますよね?まあ、そうではないかもしれません。
追加の制約は、ロケールを考慮する必要があることです。たとえば、オランダ語とアメリカ語では異なる日付形式が使用されているためです。
私が持っている唯一の入力は3つの数字とロケールであり、出力は形式の整った日付でなければなりませんLocalDate
.
次の手順が必要になると考えています。
Locale
から3 つの数値を読み取れるコンバーターを取得します。- コンバーターを使用して、3 つの数値を に変換し
LocalDate
ます。
特にクラスで少し見回しましたDateTimeFormatter
が、日、月、年の形式を明示的に渡したいようです。これは私にとってオプションではありません。
3 つの数値 (日、月、年を任意の順序で表す) を に変換するにはどうすればよい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);
また、数字の概念について話していることにも注意してください。ただし、数値に 0 ~ 9 の数字以外の Unicode 文字を使用する言語にも対応するために、文字列として表す必要があります。