• title: TimeZoneによる日付表示の変換 tags: [DateFormat] author: aterai pubdate: 2004-04-19T10:36:59+09:00 description: TimeZoneなどを使って、日付の表示を変換します。

概要

TimeZoneなどを使って、日付の表示を変換します。

サンプルコード

final SimpleDateFormat format =
  new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US);
final DateFormat df = DateFormat.getDateTimeInstance();
//field.setText("Mon, 19 Apr 2004 16:31:41 +0900");
outf.setEditable(false);
df.setTimeZone(TimeZone.getTimeZone("JST"));
JButton button = new JButton(new AbstractAction("Convert") {
  @Override public void actionPerformed(ActionEvent e) {
    String str = field.getText().trim();
    ParsePosition pp = new ParsePosition(0);
    Date date = format.parse(str, pp);
    outf.setText((date != null) ? df.format(date) : "error");
  }
});
View in GitHub: Java, Kotlin

解説

上記のサンプルは、メールなどの日付文字列を、一旦Dateに変換し、デフォルトロケールのフォーマットスタイルに変換しています。


  • Java 1.7.0から、タイムゾーンにXISO 8601形式が使用できるようになった
    • X: +09
    • XX: +0900
    • XXX: +09:00
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
System.out.println("pubdate: " + format.format(new Date()));
//pubdate: 2014-09-08T00:05:45+09:00

参考リンク

コメント