【问题标题】:How to convert a Date type entity field into a string in Java?如何在 Java 中将 Date 类型的实体字段转换为字符串?
【发布时间】:2015-10-13 11:51:14
【问题描述】:

根据数据库,我有一个实体类,其中包括一个名为start_date 的日期类型字段。 jsp 页面中有一个搜索栏,用户可以在其中使用名称或日期搜索数据。但是我们传递给方法的搜索值应该是一个字符串值。

但是start_date 是日期类型,我无法使用它来搜索数据,因为搜索参数是一个字符串。我该怎么做才能将日期类型转换为字符串?这些是我得到的示例实体字段。

P.S:这是一个带有 MySQL 的 Maven Hibernate Spring MVC 项目

@Basic
@Column(name = "name")
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

@Basic
@Column(name = "start_date")
public Date getStartDate() {
    return startDate;
}

public void setStartDate(Date startDate) {
    this.startDate = startDate;
}

任何帮助将不胜感激。

【问题讨论】:

  • 这与您的 UI 组件有关 - 如果您使用 Spring MVC 您应该在问题中明确说明。通常 UI 框架负责将 HTML 输入转换为 Java 对象。
  • 感谢错过了 MVC,所以我应该想办法通过 UI 组件?
  • 是的,这是我评论的重点。我添加了标签spring-mvc,因为届时可能会有专家帮助您。

标签: mysql hibernate spring-mvc jpa


【解决方案1】:

添加一个<input type="date"/> 并将其绑定到一个带有@RequestParam Date searchDate 的控制器方法中。行格式为 yyyy-mm-dd,因此请确保您的活页夹支持,因为我不确定它是否开箱即用。

【讨论】:

    【解决方案2】:
    pubilc Static getFromattedDate(date,dateFormatter){
        SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
        return formatter.format(date);
    }
    

    在您的 CalendarUtil.java 中创建此方法,您可以从控制器调用。然后您可以格式化输入并根据需要返回为字符串。

    【讨论】:

    • 这既不考虑当前用户的语言也不考虑时区 - 并且注释与格式化字符串不匹配 - 其中也包含时间信息......
    • 在日期格式化程序中也可以使用这个,“yyyy-MM-dd”。然后可以删除时间信息。
    • 您应该编辑您的答案以整合该响应。
    • 已完成,感谢您指导改进我的答案。
    • 不客气 - 但评论仍然无法反映您的格式。而且时区仍然缺失。除此之外,这不是在 Spring MVC 中转换用户输入的最佳方式 - 只是因为如果您创建正确的绑定,它会为您进行转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多