web-dev-qa-db-ja.com

UTC時間でカレンダーを設定するにはどうすればよいですか?

ポスター ここ Dateは常にUTC時間であると言います。ただし、Date()を作成し、カレンダーを作成し、カレンダーの時刻に日付を設定すると、時刻は現地時間のままになります(UTC時間ではありません。カレンダーの日付をループ、1ループあたり1時間を減算します。ここでは5月19日の午後11時で、日付が5月18日に変わるまでに24ループかかります。現在はUTCの午後1時です。ループ。

    Date date = new Date();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);

    SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");

    int index = 0;
    for(; index > -30; index--)
    {
        System.out.println(index);
        System.out.println(dateFormatter.format(calendar.getTime()));
        System.out.println();
        calendar.add(Calendar.HOUR, -1);
    }
28
Benji

_Java.util.Calendar_には、タイムゾーンを取る静的なファクトリメソッドがあります。

Calendar.getInstance(Java.util.TimeZone)

だからあなたは言うことができます:

_Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
_
79
Simon Nickerson