You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL场景下将jFormattedTextField日期改为日/月/年格式显示

问题根源

你直接调用rs.getString("cad_data")获取到的是PostgreSQL默认输出的yyyy-MM-dd格式字符串,和jFormattedTextField设置的##/##/####(对应dd/MM/yyyy)格式掩码规则不匹配,组件无法识别不符合格式要求的输入内容,因此启用掩码后不会展示内容。

修复步骤
  1. 不要直接用getString读取日期字段,改为读取原生日期对象,再按照目标格式转换后赋值给文本框
  2. 代码修改如下:
    首先导入依赖类:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.sql.SQLException;

替换原有逻辑中给日期文本框赋值的代码:

if(rs.next()){
    jFormattedTextFieldCPF.setText(rs.getString("cad_cpf"));
    jTextFieldNOME.setText(rs.getString("cad_nome"));
    jTextFieldIDADE.setText(rs.getString("cad_idade"));
    jTextFieldAPELIDO.setText(rs.getString("cad_apelido"));
    // 修改日期字段赋值逻辑
    Date cadData = rs.getDate("cad_data");
    if(cadData != null){
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        String formattedDate = dateFormat.format(cadData);
        // 如果你的日期组件是jFormattedTextField,替换jTextFieldDATA为对应组件名即可
        jTextFieldDATA.setText(formattedDate);
    }

    jFormattedTextFieldPROCURAR.setText(""); //deixa o campo vazio
    jFormattedTextFieldCPF.setEnabled(false);
    jTextFieldNOME.setEnabled(true);
    jTextFieldIDADE.setEnabled(true);
    jTextFieldDATA.setEnabled(true);
    jTextFieldAPELIDO.setEnabled(true);
    jButtonExcluir.setEnabled(true);
    jButtonALTERAR.setEnabled(true);
    jButtonSalvar.setEnabled(false);
    jButtonINSERIR.setEnabled(false);
}
附加注意事项
  • 如果日期输入组件为jFormattedTextField,建议初始化时同步配置格式校验规则,避免用户输入异常:
import javax.swing.text.MaskFormatter;
// 初始化组件时添加
try {
    MaskFormatter dateMask = new MaskFormatter("##/##/####");
    dateMask.setPlaceholderCharacter('_');
    dateMask.install(jFormattedTextFieldDATA);
} catch (Exception e) {
    e.printStackTrace();
}
  • 提交数据回PostgreSQL时,需要把dd/MM/yyyy格式的字符串转回Date对象或者yyyy-MM-dd格式的字符串,避免入库时报格式错误。

内容的提问来源于stack exchange,提问作者Luís Felipe Ambrozin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:09:02