0

Calender オブジェクトから時刻を取得する際に問題があります。現在の時刻を文字列として返す以下のようなメソッドがありますが、返された時刻が正しくありません。

public static String getCreatedDate()
{
    String createdDate = null;
    String DATE_FORMAT_NOW = "yyyy-MM-dd'T'HH:mm:ss.SS"; 
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
    createdDate= sdf.format(cal.getTime());        

    System.out.println(createdDate);
    return createdDate;
}

メソッドから返される日付/時刻は 2013-06-02T 08:18:09.68 ですが、正しい時刻は10:18:09.68である必要があります ... メソッドは 2 時間ずれた時刻を返します ....

4

1 に答える 1

3

でを設定できTimeZoneますSimpleDateFormat

sdf.setTimeZone(TimeZone.getTimeZone("Canada/Pacific"));

利用可能な値を見つけるTimeZoneには、次のような簡単なテストを作成できます。

for(String s : TimeZone.getAvailableIDs())
{
  System.out.println(s);
}

現在のデフォルトTimeZone値を確認するには:

System.out.println(TimeZone.getDefault());

編集:私の以前の回答(カレンダーでロケールを設定する)はテストされておらず、機能していません(JB Nizetのコメントを参照)。

于 2013-06-02T08:37:46.800 に答える