同一日期不同的长时间

CR7*_*CR7 1 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);
Run Code Online (Sandbox Code Playgroud)

如果地图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();
}
Run Code Online (Sandbox Code Playgroud)

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

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

为什么会这样?

Jon*_*eet 6

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

fechaMin.set(Calendar.MILLISECOND, 0);
Run Code Online (Sandbox Code Playgroud)

或者,使用更好的API,例如Joda Timejava.timeJava 8中的API.