19

jsr-310 にはDateTimeFormattersDateTimeFormatter. 私はこの方法が特に気に入っていpattern(String)ます - javadocを参照してください

ただし、これは大文字と小文字が区別されるという問題に遭遇しました-たとえば

DateTimeFormatters.pattern("dd-MMM-yyyy");

"01-Jan-2012" と一致しますが、"01-JAN-2012" または "01-jan-2012" とは一致しません。

1 つの方法は、文字列を分割してコンポーネントを解析することです。別の方法は、Regex を使用して、大文字と小文字を区別しない文字列を大文字と小文字を区別する文字列に置き換えることです。

でも、もっと簡単な方法があるはずだと感じています...

4

3 に答える 3

28

そして...ユーザーガイド(オフライン、代わりにJavaDocDateTimeFormatterBuilderを参照)によると、複雑なものを構築するために使用する必要がありますDateTimeFormatter

例えば

DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("dd-MMM-yyyy");
DateTimeFormatter dateFormat = builder.toFormatter();
于 2012-05-29T10:59:41.213 に答える
10

この代替手段は、静的変数の初期化に役立ちます。

DateTimeFormatter myFormatter = new DateTimeFormatterBuilder()
                               .parseCaseInsensitive()
                               .appendPattern("dd-MMM-yyyy")
                               .toFormatter(Locale.ENGLISH);
于 2016-02-03T14:58:07.523 に答える