Если у вас есть общие Apache, вы можете использовать DateUtils.truncate () :
Date myDate = DateUtils.truncate(myObject.getDate(), Calendar.DATE)
(Если у вас нет доступа к Apache Commons, DateUtils.truncate () реализуется в основном так же, как ответ kgiannakakis .)
Теперь, если вам нужен «умный» код, который очень быстр, и вы не возражаете против использования устаревших функций из java.util.Date
, вот другое решение. (Отказ от ответственности: я бы не использовал этот код сам. Но я проверил его, и он работает, даже в дни, когда DST начинается / заканчивается.)
long ts = myObject.getDate().getTime() - myObject.getDate().getTimezoneOffset()*60000L;
Date myDate = new Date(ts - ts % (3600000L*24L));
myDate.setTime(myDate.getTime() + myDate.getTimezoneOffset()*60000L);