【问题标题】:How do I search for a range of values in between two Strings in Java如何在 Java 中的两个字符串之间搜索一系列值
【发布时间】:2013-11-07 19:34:14
【问题描述】:

首先我知道这是比较日期的不好方法,但我不明白如何评估字符串以包含两个值之间的数据。例如,在这段代码中,我如何不仅列出在 tdate 1 和 2 发生的交易,而且还列出它们之间的交易。

tdate 信息设置为 11/07/2013

      System.out.println("Start Date: ");
      tdate = in.next();
      System.out.println("End Date: ");
      tdate2 = in.next();

      transactionSet trr = new transactionSet(); 

      for(int idx = 0; idx < ts.getNumTrans(); idx++){

        t = ts.retrieve(idx);
        if (t.getTdate().equals(tdate) || t.getTdate().equals(tdate2)){
         trr.insert(t);      
        }
      }

【问题讨论】:

  • java没有自己的日期类吗?
  • 您需要将字符串拆分为/,然后获取日期(可能还有月份和年份),然后检测它们之间是否存在。您也可以使用DateFormat.parse(String) 来解析字符串。
  • 使用Calendar 对象,看看它是否在边界内。
  • 11/07/2013 这可能是 7 月 11 日或 11 月 7 日,你能澄清一下你说的是哪种格式吗?
  • 不要使用Calendar 对象。他们不给你任何东西。

标签: java string if-statement


【解决方案1】:
SimpleDateFormat format = new SimpleDateFormat("d/M/yyyy");  // If this is the right format
Date first = format.parse(tdate);
Date second = format.parse(tdate2);
Date toCheck = format.parse(someDate);
if (toCheck.after(first) && toCheck.before(second)){
    // ...
}

您可能希望在 try/catch 块中执行此操作,以防输入的日期格式不正确。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2013-08-08
    相关资源
    最近更新 更多