29

こんにちは、私は以下のコードを使用して Android フォンの時間を取得していますが、分が 1 から 9 の間にある場合、ゼロのない分が表示されます。

例:現在、デバイスの時間は 12:09 ですが、12:9 と表示されます

Calendar c = Calendar.getInstance();
int hrs = c.get(Calendar.HOUR);
int mnts = c.get(Calendar.MINUTE);
String curTime = "" + hrs + ":" + mnts;
return curTime;

上記のコードの後、私は以下のコードも試してみて、上記と同じものを与えます。.

final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
Date date = cal.getTime();
int mHour = date.getHours();
int mMinute = date.getMinutes();
4

5 に答える 5

100

Egor が言ったように、anintは単なる整数です。整数には先行ゼロがありません。それらをオブジェクトに変換する場合は、先頭にゼロを付けてのみ表示できます。Stringこれを行う1つの方法は次のとおりです。

String curTime = String.format("%02d:%02d", hrs, mnts);

フォーマット文字列%02dは、整数を先行ゼロでフォーマットし ( 0in %02d)、常に 2 桁の幅を占めます ( 2in %02d)。

それはString

12:09

于 2012-07-22T11:54:18.677 に答える
15

すべては整数について言われています。ただし、日付とカレンダーを処理してその情報を表示するには、次のように使用する必要があります。

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yourpattern"); //like "HH:mm" or just "mm", whatever you want
String stringRepresentation = sdf.format(date);

パターン「mm」は、0〜9の場合、先行ゼロになります。「mmmm」を使用すると、0009が得られます。これはあまり意味がないように見えますが、すべてはあなたが何をしているのかによって異なります。欲しいです。:)

パターンを使用すると、(日付インスタンスの現在の時刻)HH:mmが取得されます。12:09

于 2012-07-22T11:59:36.500 に答える