6

SimpleDateFormat docsを参照すると、年を表すパターン文字はであるため、および(それぞれ 13, 2013) のyような表現があります。それはいいです。yyyyyy

DEFAULT/ SHORT/ MEDIUM/ LONG/ほとんどのロケールのパターンを出力すると、次のような結果FULLが得られます。

(例: ニュージーランド)

Default: d/MM/yyyy
Short: d/MM/yy
Medium: d/MM/yyyy
Long: d MMMM yyyy
Full: EEEE, d MMMM yyyy

ただし、フランスなどのいくつかのロケールを見ると、次のようになります。

Default: j MMM aaaa
Short: jj/MM/aa
Medium: j MMM aaaa
Long: j MMMM aaaa
Full: EEEE j MMMM aaaa

明らかにこれは年の表現ですが、とaaaaの意図の違いは何ですか? IE : なぜ.yyyyaaaaaaaayyyy

最初は、フランス語の "[y]ear" は "[a]nnée" (そして "[d]ay" は "[j]our") のようなものかもしれないと思っていましたがaaaa、ハンガリー語にもあるようです (ハンガリー語の「年」は「év」(昼寝)なので、「a」と「annee」の相関関係は偶然だと思います。

では、ここで推測すべき違いは何でしょうか?

私はググったが、空白を描いた。また、Java 開発者にとっては当たり前のことかもしれませんが、私はただの CFML 開発者であり、ネイティブ CFML で実行できるよりも Java の方が適切に何かを実行する場合に、Java を CFML にボルトで固定するだけです。ばかげた質問でしたら申し訳ありません。

4

1 に答える 1

4

見るとjava.text.DateFormatSymbols、次のフィールドが見つかります。

/**
 * Localized date-time pattern characters. For example, a locale may
 * wish to use 'u' rather than 'y' to represent years in its date format
 * pattern strings.
 * This string must be exactly 18 characters long, with the index of
 * the characters described by <code>DateFormat.ERA_FIELD</code>,
 * <code>DateFormat.YEAR_FIELD</code>, etc.  Thus, if the string were
 * "Xz...", then localized patterns would use 'X' for era and 'z' for year.
 * @serial
 */
String  localPatternChars = null;

これは、定義済みの順序で各書式要素の文字を含む文字列です (たとえば、文字 0 は紀元書式文字、文字 1 は年書式文字など)。

このフィールドは、sun.text.resources.FormatDataリソース バンドルから (もちろんロケールごとに)、DateTimePatternCharsキーから読み込まれます。

リソースを調べるとsun.text.resources.FormatData_fr、キーと値のペアが見つかります{ "DateTimePatternChars", "GaMjkHmsSEDFwWxhKzZ" }

簡単に言うと、フランス ロケールの "a" 形式の文字は、米国ロケールの "y" 形式の文字とまったく同じ効果があります。呼び方が異なるだけです。

于 2013-10-03T08:36:44.687 に答える