Anew Date()
は「協定世界時 (UTC) を反映することを意図しています」。ユーザーが時計に表示する内容は、日付のレンダリングに使用さTimeZone
れる で指定できるによって異なります。DateFormat
以下の例では、同じ瞬間を GMT で表示し、ニューヨークからベルリンまでのタイム ゾーンを選択して表示しています。
補遺:モデルとして、またそのモデルのビューとして考えるとDate
役立つと思います。DateFormat
2013 年 2 月 3 日 18:01:42 GMT GMT 1359914502673
2013 年 2 月 3 日 13:01:42 EST アメリカ/ニューヨーク 1359914502673
2013 年 2 月 3 日 14:01:42 AST アメリカ/アルバ 1359914502673
2013 年 2 月 3 日 15:01:42 アート アメリカ/ブエノスアイレス 1359914502673
2013 年 2 月 3 日 16:01:42 BRST アメリカ/サンパウロ 1359914502673
2013 年 2 月 3 日 17:01:42 AZOT 大西洋/アゾレス諸島 1359914502673
2013 年 2 月 3 日 18:01:42 GMT ヨーロッパ/ロンドン 1359914502673
2013 年 2 月 3 日 19:01:42 CET ヨーロッパ/ベルリン 1359914502673
パッケージの日付;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
/** @see http://stackoverflow.com/a/14675418/230513 */
public class TestSDF {
private static final String s = "dd-MMM-yyyy HH:mm:ss zz";
private static final DateFormat f = new SimpleDateFormat(s);
public static void main(String[] args) {
Date date = new Date();
print("GMT", date);
print("America/New_York", date);
print("America/Aruba", date);
print("America/Buenos_Aires", date);
print("America/Sao_Paulo", date);
print("Atlantic/Azores", date);
print("Europe/London", date);
print("Europe/Berlin", date);
}
private static void print(String tz, Date d) {
f.setTimeZone(TimeZone.getTimeZone(tz));
System.out.println(f.format(d)
+ " " + tz
+ " " + d.getTime());
}
}