: O. Yuanying

日時を文字列で表示する

日時を文字列で表示するにはjava.text.SimpleDateFormatを使用する方法があるが、ブログシステムを使う上で気をつけばければいけないことがある。それはこのクラスにはISO8601のタイムゾーンがサポートされていないことだ。SimpleDateFormatでサポートされているのは一般的なタイムゾーンとRFC822のタイムゾーンのみである。

フォーマット
一般的なタイムゾーン Pacific Standard Time; PST; GMT-08:00
RFC822のタイムゾーン -0800
ISO8601のタイムゾーン -08:00

XMLで時刻を表示するときにはISO8601のタイムゾーンを使いたい。そこでどうすればいいか?

答え:org.apache.commons.lang.time.DateFormatUtilsを使う。

// 例
long time = System.currentTimeMillis();
String pattern = "yyyy-MM-dd'T'HH:mm:ssZZ";
System.out.println(DateFormatUtils.format(time, pattern));

org.apache.commons.lang.time.DateFormatUtilsはJakarta Commonsに含まれている。色々使ってみるとわかるけどCommonsは本当にかゆいところに手が届く感じでよい。Commonsの概観を知るには「攻略Jakarta Commons」が良かった。前から使ってみたかったのだが本家ページは英語ドキュメントの山で、どこから手をつければよいのかわからなかっただけにこの本はありがたかった。