在CN1

时间:2016-08-24 14:47:55

标签: java date codenameone

我有很大的问题没有时间获取日期,我想将时间设置为00:00所以我可以检查日期差异。

我到目前为止尝试的步骤:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date now = new Date();
try {
    now = dateFormat.parse(dateFormat.format(now));
} catch (ParseException e1) {
    //
}

这段代码仍然花时间,我在这里提出了这个类似的代码How do I get a Date without time in Java?由Shobbi回答

之前我的结果比较好,但时间仍然是01:00。 谁对我有更好的解决方案? 我需要将SQLite数据库中的日期与实际日期进行比较。

请记住,CN1 Datelibs基于JDK1.3,因此我使用方法限制

4 个答案:

答案 0 :(得分:2)

为什么不使用字符串?如果您使用格式yyyy-MM-ddString.compareTo(otherDateString)应该告诉您这两个日期是如何相关的(一天之前,之后或同一天)

例如:

String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
//get the other date into a string
boolean isInThePast = (today.compareTo(otherDateString) > 0);

答案 1 :(得分:2)

您可以在不考虑小时,分钟,秒和毫秒的情况下比较此类日期:

end_date

<强>测试

public static int daysBetweenNowAndDate(String date, String format) {
    try {
        DateFormat dateFormat = new SimpleDateFormat(format); //Change format to your incoming date string format
        Calendar now = Calendar.getInstance();
        now.set(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DATE), 0, 0, 0);
        now.set(Calendar.MILLISECOND, 0);

        Calendar otherDate = Calendar.getInstance();
        otherDate.setTime(dateFormat.parse(date));
        otherDate.set(otherDate.get(Calendar.YEAR), otherDate.get(Calendar.MONTH), otherDate.get(Calendar.DATE), 0, 0, 0);
        otherDate.set(Calendar.MILLISECOND, 0);

        long divisor = 86400000; // 24 hours (24 * 60 * 60 * 1000)
        long num = now.getTime().getTime() - otherDate.getTime().getTime();
        return (int) ((num + divisor - 1) / divisor);
    } catch (ParseException ex) {
        return -999999;
    }
}

答案 2 :(得分:1)

在几个建议之后找到了答案,感谢大家

Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR_OF_DAY, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
now.set(Calendar.MILLISECOND, 0);
now.getTime();

这里重要的是采用导入java.util.Calendar而不是com.codename1.ui.Calendar

还有一点我的错误,在这种情况下,我使用了日历并因使用错误导入而感到困惑:\

答案 3 :(得分:-1)

尝试使用可以解决问题的Joda时间库