当前位置: 首页 > 知识库问答 >
问题:

比较Java中String类型的日期减去几天

宗政霄
2023-03-14

我试图比较两个类型为String的日期(在应用SimpleDateFormat之后),现在我有了一个应用逻辑,比如检查我收到的日期是7天后的今天的日期。

这两个日期的格式都是YYYY-MM-DD。

共有1个答案

公良文彬
2023-03-14
public class DateExample {

    public static void main(String[] args) {
        System.out.println(isWithin("2014-01-01", -7));
        System.out.println(isWithin("2014-01-03", -7));
        System.out.println(isWithin("2013-12-27", -7));
    }

    public static boolean isWithin(String date, int days){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date dateProvided = null;
        try {
            dateProvided = format.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        } 

        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_MONTH, days);
        calendar.set(Calendar.HOUR, 12);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        Date comparisonDate = calendar.getTime();

        return comparisonDate.equals(dateProvided);
    }
} 
 类似资料:
  • 问题内容: 我的心脏必须深入到减去两个日期以计算出天数后,内部开始流血: .NET或你命名的任何现代语言中只有两行代码。 这对Java不好吗?还是我应该知道一个隐藏的方法? 可以在util中使用Date类而不使用GregorianCalendar吗?如果是这样,我是否应该提防像1970年这样的细微事情? 谢谢 问题答案: 这确实是标准Java API中最大的史诗失败之一。有一点耐心,那么你将获得J

  • 问题内容: 我想比较Java中的类类型。 我以为我可以这样做: 我想比较一下是否传递给函数的obj是从MyObject_1扩展而来的。但这是行不通的。似乎getClass()方法和.class提供了不同类型的信息。 如何比较两个类类型,而不必创建另一个伪对象来比较类类型? 问题答案: 试试这个: 由于继承,这对接口也有效: 有关instanceof的更多信息,请访问:http : //mindpr

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 有谁知道约会(例如今天)和回溯X天的简单方法吗? 因此,例如,如果我想计算今天之前5天的日期。 问题答案: 尝试这样的事情: 请注意,这将修改日期对象并返回更新日期的时间值。

  • 问题内容: 我需要在Java中比较两个日期。我正在使用这样的代码: 这是行不通的。变量的内容如下: 包含 包含 我该如何解决? 问题答案: 日期相等性取决于两个等于毫秒的日期。使用创建新的Date对象将永远不会等于过去创建的日期。Joda Time 的API简化了日期的处理。但是,仅使用Java的SDK:

  • 代码: 输出:(增加空白行以提高可读性) 有两件事我不明白: null 我还查看了date.equals()的实现: 那么,为什么返回false,尽管为两个对象都返回了1406498400000? 参考:http://docs.oracle.com/javase/7/docs/api/java/util/date.html#equals(java.lang.object)

  • 问题内容: 我有一个这样的日期: 如何返回同一日期但比一年前早的日期? 问题答案: 您可以使用: 该函数返回unix时间戳,可以使用以下格式的字符串: