を変換:のSimpleDateFormat - 私は、次のような形式を定義し、他のロケールに
sdf = new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.getDefault())
を今、私はこの1つのようないくつかのデバイス上の例外を取得:
java.lang.IllegalArgumentException: Unknown pattern character 'Y'
だから、問題はY
ではない、ありますローカルのこのデバイスでサポートされています。だから私は、次のように形式を変更する必要があります。
// the string format is formatted in english, so we pass in Locale.ENGLISH
new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.ENGLISH)
質問
をどのように私は今、ロケール言語で日付を印刷するには、このSimpleDateFormat
を使用できますか?私はEEEE
がドイツ語、英語、スペイン語などであることを望みます。ですから、英語の書式文字列を使用する必要がありますが、書式設定された文字列を現地語で印刷する必要があります。これどうやってするの?
例
SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.getDefault());
Date d = new Date();
String formatted = sdf.format(d);
期待
DE: Juli 2017\nMittwoch, 2017
EN: July 2017\nWednesday, 2017
アイデア
new SimpleDateFormat("MMMM dd\nEEEE, YYYY", Locale.getDefault());
のような現在のローカルでSimpleDateFormat
を作成しますが、今私は確認することはできません
new SimpleDateFormat("MMMM dd'\n'EEEE',' yyyy", Locale.ENGLISH)
しかし:コンストラクタに渡された私の文字列が
入力日はどうなっていますか?注意してください* Y *は週年* y *は年です – Jens
'new Date()'などと似ています...それは質問ですか? – prom85
あなたの質問に[mcve]を追加してください – Jens