Java では、次の形式の String から Calendar オブジェクトを作成する必要があります。
yyyy-MM-dd'T'HH:mm:ss
この文字列は常に GMT 時間として設定されます。だからここに私のコードがあります:
public static Calendar dateDecode(String dateString) throws ParseException
{
TimeZone t = TimeZone.getTimeZone("GMT");
Calendar cal = Calendar.getInstance(t);
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date d = date.parse(dateString);
cal.setTime(d);
return cal;
}
その後:
Calendar cal = Calendar.getInstance();
try
{
cal = dateDecode("2002-05-30T09:30:10");
} catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
int month = cal.get(Calendar.MONTH)+1;
そして、次の出力が得られます。
Timezone: GMT+00:00 date: 2002-5-30 time: 7:30:10
提供された時間はCETではなくGMTであるため、これは間違っていることがわかります。提供された時間が CET (私の現在のタイムゾーン) であると考えているため、時間を CET から GMT に変換し、最終結果から 2 時間を差し引いていると思います。
誰でもこれで私を助けることができますか?
ありがとう
ところで: さまざまな理由で JodaTime を使用したくありません。