2014-03-13 116 views
2

我需要解决以下问题。我需要创建日期来与其他人进行比较,但是由于比较时间的原因,日期必须没有时间。无时间获取当前日期

我尝试过很多方法,但仍然失败。

我可以想象这样的格式:

Date(2014-13-03 0:00:00).getTimeMillis(); 

难道有谁知道怎么样?

+0

类'Date'是不适合的情况下,使用类'LocalDate'在乔达时库:HTTP://www.joda。组织/乔达时间/ – morgano

回答

5

你可以使用一个Calendar来解决这个问题:

Calendar cal = Calendar.getInstance(); 
cal.setTime(yourDate); 
cal.set(Calendar.HOUR, 0); 
cal.set(Calendar.MINUTE, 0); 
cal.set(Calendar.SECOND, 0); 
cal.set(Calendar.MILLISECOND, 0); 
Date desiredDate = cal.getTime(); 
-1
long time = new SimpleDateFormat("yyyy-dd-MM").parse("2014-13-03 0:00:00").getTime(); 
1

最好的事情是乔达时间,如果你可以使用它。

否则,请使用Calendar API。调用Calendar.set()将小时,分钟,秒和毫秒设置为零,那么你有一个日期开始的日期。

但是,不会new DateTime().withTimeAtStartOfDay()是一个更容易表达?

0

您可以使用Calendar.clear(field)方法来清除日期的时间部分。

Calendar rightNow = Calendar.getInstance(); 
rightNow.clear(Calendar.HOUR); 
rightNow.clear(Calendar.MINUTE); 
rightNow.clear(Calendar.SECOND); 
rightNow.clear(Calendar.MILLISECOND); 
Date today = rightNow.getTime(); 
1

在Java 8,你可以做

LocalDate date = LocalDate.of(2014, Month.MARCH, 13);