ミリ秒の文字列 (RSS フィードから取得されるため、文字列になります。以下の例は簡単なテスト プログラムです) を取り、それらのミリ秒を Date オブジェクトに変換する次のコードがあります。
public static void main(String[] args) {
String ms = "1302805253";
SimpleDateFormat dateFormatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(Long.parseLong(ms));
try {
String dateFormat = dateFormatter.format(calendar.getTime());
System.out.println("Date Format = " + dateFormat);
Date dateParse = dateFormatter.parse(dateFormatter.format(calendar.getTime()));
System.out.println("Date Parse = " + dateParse);
} catch (ParseException e) {
// TODO: handle exception
}
}
Output:
Date Format = Fri, 16 Jan 1970 02:53:25 GMT
Date Parse = Fri Jan 16 03:53:25 GMT 1970
ご覧のとおり、カレンダー オブジェクトの書式設定と結果の文字列の解析の間に、1 時間が失われています。また、出力のフォーマットが変更されました。なぜこれが起こっているのか、そしてそれを回避する方法について誰かが私を助けることができますか? Date オブジェクトを「Date Format」出力と同じ形式にしたい。