同一日期不同的长时间

时间:2014-08-12 21:15:13

标签: java date

我是一个对象日期,例如这个日期" Fri Aug 01 00:00:00 CDT 2014"通过这个验证:

Date fechaInicio = filtros.containsKey("dateFechaInicio") ? Fecha.getMinDate(Fecha.getFecha(filtros.get("dateFechaInicio").toString())) : Fecha.getMinDate(null);

地图filtros包含密钥" dateFechaFinal"它将用于处理

的Fecha.getMaxDate(Date date)
    public static Date getMinDate(Date fecha) {
    Calendar fechaMin = Calendar.getInstance();
    fechaMin.setTime(fecha != null ? fecha : new Date());
    fechaMin.set(fechaMin.get(Calendar.YEAR),
                                fechaMin.get(Calendar.MONTH),
                                fecha != null ? fechaMin.get(Calendar.DAY_OF_MONTH) : fechaMin.getActualMinimum(Calendar.DAY_OF_MONTH),
                                fechaMin.getActualMinimum(Calendar.HOUR_OF_DAY),
                                fechaMin.getActualMinimum(Calendar.MINUTE),
                                fechaMin.getActualMinimum(Calendar.SECOND));
    return fechaMin.getTime();
}

并返回一个新的日期,如果此方法收到日期返回此长时间1406869200806,但如果收到等于null的日期,则该方法从月份开始的第一天例如" Fri Aug 01 00:00: 00 CDT 2014"但现在返回这个长时间1406869200000 ..

" filtros获得了一个String,方法getFecha()转换为新的日期"

为什么会这样?

1 个答案:

答案 0 :(得分:6)

您只需将值设置为秒,因此毫秒部分保留在new Date()的任何位置。你的描述并不完全清楚,但我怀疑你只是想要:

fechaMin.set(Calendar.MILLISECOND, 0);

或者,在Java 8中使用更好的API,例如Joda Timejava.time API。