我在用Java重置小时数时遇到问题。对于给定的日期,我要将小时设置为00:00:00。
这是我的代码:
/**
* Resets milliseconds, seconds, minutes and hours from the provided date
*
* @param date
* @return
*/
public static Date trim(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR, 0);
return calendar.getTime();
}
问题是,时间有时是这样12:00:00
,有时是这样00:00:00
,当我查询数据库中保存的实体以及查询07.02.2013 00:00:00
的实际实体时间即存储12:00:00
失败时。
我知道12:00:00 == 00:00:00
!
我正在使用AppEngine。这是Appengine错误,问题还是其他问题?还是取决于其他因素?
java.util.Date
,java.util.Calendar
和java.text.SimpleDateFormat
现在的遗产,由取代java.time内置到Java 8的Java 9.请参见类由Oracle教程。
calendar.set(Calendar.HOUR_OF_DAY, 0);
,以达到我的目的,效果很好。