16
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DateFormat.format では HH:mm ではなく kk:mm を使う

Last updated at Posted at 2013-04-15

Android には android.text.format.DateFormat というユーティリティクラスがあるのですが、これの format メソッド、時刻の24時間形式に対応してません。

DateTimeFormatTest.java
long t = System.currentTimeMillis();
Log.d("By DateFormat", DateFormat.format("HH:mm", t));
Log.d("By SimpleDateFormat", new SimpleDateFormat("HH:mm").format(new Date(t)));
04-09 22:42:14.435: D/By DateFormat(2860): HH:42 ←あ〜あ
04-09 22:42:14.435: D/By SimpleDateFormat(2860): 22:42

Staclkoverflow とかにも「代わりに SimpleDateToimeFormat を使えば」と書いてあるわけですが、いやいやそれじゃユーティリティクラスの役割果たしてないでしょ?と思うところであります。

自分の中では、時刻は24h表示がデフォルトなので、「DateFormat クラス使えない子」というレッテルを貼ってしまいました。

追記 2013.7.24

「HH でなく kk が使えるよ」とコメントで教えて頂きました。

DateFormat.format("kk:mm", t);
new SimpleDateFormat("kk:mm").format(new Date(t));

どうやら SimpleDateFormat でも使えるようなので、「Java で 24h表記の場合は kk」って覚えておけばよさそうです。(k って何の略なの…)

参考

よく見たら、ここの Top Vote にも 「kk 使え」って書いてあったorz

16
19
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?