为什么如果我将日期从毫秒转换为日期,然后再转回,从日期转换为毫秒,那么该日期会发生变化?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