0
Calendar c = Calendar.getInstance(); 
String myDateString = (String) DateFormat.format("yyyy-MM-dd hh:mm", c.getTime());

dateTv.setText(myDateString);

出力は次のとおりです。

2014-02-13 04:31

時間は実際には 04 ではなく 16 です。つまり、午前 0 時 (午前 4 時) の後ではなく、名詞の後です。

なぜそれが起こっているのですか、どうすれば修正できますか?

編集:

素敵な -1 有権者の場合:

誰かが提案したように:

  String myDateString = (String) DateFormat.format("yyyy-MM-dd HH:mm", c.getTime());

このソリューションは、私にこの正確な文字列を与えます:

2014-02-13 HH:45

はい。私の時間には 2 つの「H」文字があります。数字ではなく、まさにHの文字です。

4

2 に答える 2

5

使用するHH

hhPM と AM を使用して時間を表します。表示しないもの

String myDateString = (String) DateFormat.format("yyyy-MM-dd HH:mm", c.getTime());

Androidのドキュメントによると

H = 時間 (0-23)

h = 午前/午後の時間 (1-12)

編集: H17 未満の API でサポートされていないという問題があるようです。そのため、kk実際に適切なHH実装である方を使用することをお勧めします。

API レベル 17 までは、{@code adEhkMmszy} のみがサポートされていました。このクラスは、下位互換性のために {@code H} であるかのように {@code k} を誤って実装していることに注意してください。

于 2014-02-13T15:38:14.537 に答える
2

以下のように「hh」を「kk」に置き換えてみてください。

Calendar c = Calendar.getInstance(); 
String myDateString = (String) DateFormat.format("yyyy-MM-dd kk:mm", c.getTime());

dateTv.setText(myDateString);

ここから: https://stackoverflow.com/a/7078488/2065418

于 2014-02-13T15:52:33.017 に答える