date4j不等于同一天

时间:2016-04-03 12:27:36

标签: java datetime

我想指出一个可能不是问题的问题,但让我带你走过我的榜样..

我想将日期与另一个日期进行比较,没有小时,分钟,秒等。

一个日期现在没有hh mm ss

  //Now Date
        DateTime now = DateTime.now(TimeZone.getDefault()).getStartOfDay();

所以另一个日期来自一个格式为" YYYY-MM-DD"

的Feed

所以我用这种格式创建日期 DateTime date_to_compare = new DateTime(date_strStartDate);

如果date_to_compare与今天同日,

它不等于现在的日期。

因为date_to_compare具有小时,分钟,秒等的空值。

所以最后,即使它的日期相同,也永远不会返回。

if (now .gteq(date_to_compare ) && now .lteq(date_to_compare )   ){
   return true;
}

为了实现这一点,我接受了这个想法。

DateTime date_to_compare = new DateTime(date_strStartDate+" 00:00:00.0000");

我明确地在日期字符串中添加小时分钟,以便为构造函数提供一些值。 然后前面的语句最终返回true。

但是这让我头疼了4天,所以这个问题也发布到date4j github频道。 https://github.com/IanDarwin/date4j/issues/1

我也在这里发帖,所以它也可以节省一些人的日子!

1 个答案:

答案 0 :(得分:0)

好先生约翰(https://github.com/johanley

通过向我指出已经定义的函数来回答它,该函数没有考虑DateTime中的TIME 答案也在这里 https://github.com/johanley/date4j/issues/4#issuecomment-204965719

  

嗨,在这种情况下,您应该使用'isSameDayAs'方法:

     

http://www.date4j.net/javadoc/hirondelle/date4j/DateTime.html#isSameDayAs%28hirondelle.date4j.DateTime%29

     

约翰