日付をミリ秒から日に変換してから、日からミリ秒に戻すと、この日付が変わるのはなぜですか?
例えば:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2012-06-02");
System.out.println(date);
Long dateAsDays = TimeUnit.MILLISECONDS.toDays(date.getTime());
System.out.println(
new Date(
TimeUnit.DAYS.toMillis(dateAsDays)
) );
印刷されます:
6月2日土曜日00:00:00GMT+ 03:00 2012
2012年6月1日金曜日03:00:00GMT+ 03:00 2012
この変換で月の日を保存するにはどうすればよいですか?そして、なぜこのコードが正しく機能しないのですか?