我需要解决以下问题。我需要创建日期以便与其他人进行比较,但由于比较timemillis,日期必须没有时间。
我尝试了很多方法,但仍未成功。
我会想象这样的格式:
Date(2014-13-03 0:00:00).getTimeMillis();
有谁知道怎么做?
答案 0 :(得分: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 :(得分:1)
如果可以使用它,最好的是joda-time。
否则,请使用Calendar API。调用Calendar.set()将小时,分钟,秒和毫秒设置为零,然后你有一个日期的开始日期。
但是,赢得new DateTime().withTimeAtStartOfDay()更容易表达?
答案 2 :(得分:1)
在Java 8中你可以做到
LocalDate date = LocalDate.of(2014, Month.MARCH, 13);
答案 3 :(得分:0)
您可以使用Calendar.clear(字段)方法清除日期的时间部分。
Calendar rightNow = Calendar.getInstance();
rightNow.clear(Calendar.HOUR);
rightNow.clear(Calendar.MINUTE);
rightNow.clear(Calendar.SECOND);
rightNow.clear(Calendar.MILLISECOND);
Date today = rightNow.getTime();
答案 4 :(得分:-1)
long time = new SimpleDateFormat("yyyy-dd-MM").parse("2014-13-03 0:00:00").getTime();