2

私はこれを認めたくありませんが、基本的な日付のフォーマットを理解するのに苦労しています。私はこれを単に考えすぎていることを知っていますが、私が見ているドキュメントは私を完全に見逃しているだけです。私がやろうとしているのは、たとえば「2013年2月20日水曜日」の形式で現在の日付を表示することです。私がこれまでに持っているのは:

TextView textView = (TextView) findViewById(R.id.currentDate);
String now = DateFormat.getDateInstance().format(new Date());
textView.setText(now); 

これは「2013-2-20」のようなものを生成します。これは素晴らしい最初のステップですが、私が望むものではありません。ドキュメントを見ると、すべてのドキュメントが、、、、またはを表すためにDateFormat整数を使用すると言っているので、私は混乱しています。何?正確には、私はこの議論をどこに置くでしょうか?そして、どのように/どの整数がvsを意味しますか?これはどれも意味がなく、私はそれが非常に明白であることを知っているので、完全なモロンのように感じます。私は何年にもわたってPHPの日付フォーマットを使用してきたことから来ており、私の古い習慣がこれの単純さを完全に妨げていると確信しています。SHORTMEDIUMLONGDEFAULTSHORTLONG

4

2 に答える 2

3

次のように属性(SHORT、LONGなど)を入れますDateFormat.getDateInstance();

DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);

SHORTは、12.13.52や3:30pmなどの完全な数値です。

MEDIUMは、1952年1月12日など、より長くなります。

LONGは、1952年1月12日や午後3時30分32秒などのように長くなります。

FULLは、1952年4月12日火曜日、太平洋標準時午後3時30分42秒など、ほぼ完全に指定されています。

この情報はここにあります。

于 2013-02-20T21:48:02.517 に答える
1

従来の言語に慣れている場合、見逃している重要な概念は、Java での日付/時刻の処理がひどく壊れているということです。1回だけでなく2回、壊れた2つの別々の化身で。さらに、DateUtils などの事後対応のバンドエイド ヘルパー クラスがいくつかあります。理解する必要がある重要な洞察は、Java で日付と時刻を扱うことは決して単純ではないということです。

代わりに SimpleDateFormat を使用してみてください。いいえ、実際には単純ではありません。ただし、デフォルト設定では、実行可能なローカライズされた日付/時刻が生成されます (正確に美しいものではない場合)。

    DateFormat format = SimpleDateFormat.getDateTimeInstance(),

while 生成: "Dec 31, 1969 4:00:00 PM" (またはローカライズされた同等のもの)。

于 2013-02-20T22:08:22.350 に答える