【问题标题】:MySQL Date Format in JavaFX TableViewJavaFX TableView 中的 MySQL 日期格式
【发布时间】:2015-12-02 19:09:57
【问题描述】:

我有一个 JavaFX TableView 表示由 MySQL 数据库填充的作业数据。除了两个日期列外,所有数据都显示正常,这两个列都表示为 YYYY-MM-DD。我想做的是反过来,即 DD-MM-YYYY。

+--------------+------------+
| Date Created |  Deadline  |
+--------------+------------+
| 2015-09-07   | 2015-09-14 |
| 2015-09-07   | 2015-09-14 |
+--------------+------------+

最好通过修改我用来填充表的 MySQL 查询来做到这一点:final String finalQuery = "SELECT * FROM kitJobs ORDER BY kitJobs.CaseNO ASC";?如果是这样,我将如何修改查询以获得所需的日期格式?

【问题讨论】:

  • 您是否将日期信息存储在数据库的文本字段中?如果是这样,我会首先更改 that,如果可能的话。然后,更改信息在 JavaFX 中的格式 - 不要更改查询。 (应该是 UI 决定格式,而不是数据层。)
  • @JonSkeet 它们作为日期类型存储在数据库中。我将如何从 JavaFX 中更改数据的格式?

标签: java mysql javafx


【解决方案1】:

您可以使用 SimpleDateFormat;

  String s;
  Format formatter;
  Date date = new Date();

  // 01/09/02
  formatter = new SimpleDateFormat("dd/MM/yyyy");
  s = formatter.format(date);
  System.out.println(s);

【讨论】:

  • 我对这个解决方案的唯一问题是何时将格式应用于日期以及如何将其应用于 JavaFX 表列?我在从数据库中获取日期后尝试格式化,但这不起作用。
【解决方案2】:

为了供其他寻求类似解决方案的人将来参考,我通过执行以下操作成功地在 UI 中格式化了我的列;

deadlineDateCol.setCellValueFactory(
           Job -> {
              SimpleStringProperty property = new SimpleStringProperty();
              DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
              property.setValue(dateFormat.format(Job.getValue().getDeadlineDate()));
              return property;
           });

【讨论】:

    【解决方案3】:

    这就是我所做的,而且我工作得很好。

    tbColDataMovt.setCellFactory((TableColumn<Auditoria, Timestamp> column) -> {
      return new TableCell<Auditoria, Timestamp>() {
         @Override
         protected void updateItem(Timestamp item, boolean empty) {
            super.updateItem(item, empty);
             if (item == null || empty) {
                setText(null);
             } 
             else {
                setText(item.toLocalDateTime().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")));
             }
          }
       };
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2017-12-17
      • 2011-10-20
      • 2011-07-19
      • 2013-12-24
      相关资源
      最近更新 更多