爲什麼如果我將日期從毫秒轉換爲日期,然後再轉回,從日期轉換爲毫秒,那麼該日期會發生變化?Java中的日期轉換
例如:
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:00 GMT + 03:00 2012
星期五6月1日3點00分○○秒格林威治標準時間+ 03:00 2012
我如何在這個轉換中保存月份的一天?爲什麼這段代碼無法正常工作?
日期/時間的問題,您應該使用[喬達](HTTP://喬達時間.sourceforge.net /)項目,它提供了處理日期,時間和時間戳操作的簡單方法。 –
如果您有選擇,可以使用JODA而不是內置的Java日期設施,這些設施已經有點破了。 –
感謝您使用Joda的建議 – Kot4