0

我需要将(部分)搜索字符串与数据库中带有时间戳的日期相匹配。

我有一个搜索框,可让您一次搜索 4 个值。那些是:代码,日期,名称和代码2。当您输入一个值时,我会创建一个包含所有有效搜索结果的新列表。目前除了我的日期外一切正常,我可以搜索独立的数字,但是当我使用以下格式时,我得到一个 404。

("dd/MM/yyyy")

现在我确实有一个格式化程序可以将我的日期从数据库(格式=“yyyy-mm-dd hh:mm:ss”)转换为字符串。但是我一直遇到同样的问题。当我输入 / 进入搜索框的那一刻,它将不再生成我的列表,我得到 404。

我想知道最好的解决方案是什么?将所有内容转换为字符串,将搜索字符串转换为日期格式 + 00:00:00 或更改搜索框中的某些内容,以便仅在格式完全匹配时查找日期?

  if (orderHeader.getCode() != null) {

 orderHeaderDTO.setCode(orderHeader.getCode());
 }

  if (orderHeader.getOrderDate() != null) {

      while (searchString.contains("/")) {
      Date date = orderHeader.getOrderDate();
      String dateString = DateUtil.convertDateToString(date);

 if (dateString == searchString) {

       orderHeaderDTO.setOrderDate(date);
    }       
 }

能够使用以下格式进行搜索 =“dd/MM/yyyy”并且不会收到 404 或 500 错误

4

1 回答 1

0

问题在于两个字符串对象的比较。== 运算符只会检查引用是否相等,在这种情况下不是。

您只需要使用equals方法,

 dateString.equals(searchString)

由于您尚未共享代码,因此我无法对您的 DateUti.convertDateToString(date) 发表任何评论。

于 2019-05-15T14:00:27.850 回答