当前位置: 首页 > 面试题库 >

如何在Java中确定从现在到将来的任意日期之间的时间

莫兴言
2023-03-14
问题内容

我目前正在尝试确定两个日期之间的时间量(其中一个是当前日期/时间,另一个是任意将来的日期)。我仅使用本机Java和Android
API,但GregorianCalendar遇到了一些问题。到目前为止,我的代码可以在下面看到,但是我遇到的问题是两个日期之间的时间非常不准确。如您所见,在此示例中,我将将来的日期设置为圣诞节,但是这告诉我直到那时为止还有62天,这显然是错误的。

    date = new GregorianCalendar();
    currentTime = date.getTimeInMillis();
    calendar = new GregorianCalendar();
    calendar.set(2011, 12, 25, 0, 0, 0);
    long difference = calendar.getTimeInMillis()-currentTime;

    long x = difference / 1000;
    seconds = x % 60;
    x /= 60;
    minutes = x % 60;
    x /= 60;
    hours = x % 24;
    x /= 24;
    days = x;

在调试时,我添加了date.set(2011,11,23,13,1,15); 准确得多,但是当我认为正确的天数是31天时,它仍然显示32天。

非常感谢您的任何帮助,非常感谢。


问题答案:

您的代码中的问题是calendar.set(2011, 12, 25, 0, 0, 0); 您想要的方法是calendar.set(2011, 11, 25, 0, 0, 0);

您也可以使用Calendar.DECEMBER

该方法的javadoc很清楚:

  • @param month用于设置MONTH日历字段的值。*月值从0开始。例如,一月为0。



 类似资料:
  • 问题内容: 在所有三个日期都由的实例表示的情况下,如何检查某个日期是否在其他两个日期之间? 问题答案: 这可能更具可读性:

  • 问题内容: 我假设Java有一些内置的方法可以做到这一点。 给定日期,我如何确定该日期之前一天? 例如,假设给我3/1/2009。上一个日期是2009年2月28日。如果给我3/1/2008,那么以前的日期应该是2/29/2008。 问题答案: 使用日历界面。 以这种方式进行“加法”可确保您获得有效的日期。该日期也于一年的1月1日有效,例如2012年1月1日为2011年12月31日。

  • 问题内容: 我有两个DateTime对象,需要找到它们之间的差值的持续时间, 我有以下代码,但不确定如何继续执行以获得预期的结果,如下所示: 例 码 问题答案: 尝试以下

  • 我有两个DateTime对象,它们需要找出它们之间差异的持续时间, 我有以下代码,但不确定如何继续以达到以下预期结果: 示例: 代码:

  • 问题内容: 我有两个日期,格式如“ Ymd H:i:s”。我需要比较这两个日期并找出时差。 问题答案: 您可以将它们转换为时间戳,然后从那里开始: 除以3600是因为一小时内有3600秒,请避免使用很多小数位。

  • 我得到了一个有这样数据的表: 如何选择具有适当id的行,其中date_from和date_to之间的s_date最接近date_from\date_to范围?在我的情况下,最合适的行必须是: 谢谢!