Gravar no banco de dados o formato date como 2021-10-05

Bom dia, meus amigos…

Preciso de um help se possivel…

Estou retomando meus estudos em Java depois de muito tempo e deparei com um probleminha que estou quebrando a cabeça pra resolver…

Estou tentando gravar no bando de dados o formato date como Ex. 2021-10-05 porem lá está gravando formato Long: 1602298800000 tem alguma forma para direto nesse formato sendo 2021-10-05 ?

Segue o Código Abaixo

public class GanhosDAO {

private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public void Adicionar (Ganhos ganhos){
    
   Connection con = BdConexaoDAO.getConnection();
    PreparedStatement pstmt = null;
    
    try {
        
        String sql = "INSERT INTO TB_GANHO "
                + "(CATEGORIA, "
                + "KMS_PERCORRIDOS, "
                + "HORAS_TRABALHADAS, "
                + "VIAGENS_REALIZADAS, "
                + "VALOR_GANHO, "
                + "DATA, "
                + "OBSERVACAO)" +
                " VALUES (?,?,?,?,?,?,?)";
         pstmt = con.prepareStatement(sql);
         
         pstmt.setString(1, ganhos.getCategoria_ganhos());             
         pstmt.setString(2, ganhos.getKmsPercorridos_ganhos());             
         pstmt.setString(3, ganhos.getHorasTrabalhadas_ganhos());              
         pstmt.setString(4, ganhos.getViagensRealizadas_ganhos());             
         pstmt.setString(5, ganhos.getValor_ganhos());             
         pstmt.setDate(6, new java.sql.Date (ganhos.getData_ganhos().getTime()));             
         pstmt.setString(7, ganhos.getObservacao_ganhos());
         
         pstmt.execute();
         
         JOptionPane.showMessageDialog(null,"Registro salvo com sucesso!" ,
                 "Informação", JOptionPane.INFORMATION_MESSAGE );
    } catch (Exception ErroSql) {
        JOptionPane.showMessageDialog(null,"Erro ao adicionar registro: "+ErroSql ,
                 "Erro", JOptionPane.ERROR_MESSAGE );            
    }
    finally
    {
        BdConexaoDAO.closeConnection(con, pstmt);
    }   
}

Data não tem formato.
O que tem formato é a forma como tu apresentas a data para que o utilizador consiga de maneira facil saber qual é a data.

Onde estás a ver esse long?

  • Na tua aplicação? Então aí sim, tens de usar o DateFormat para apresentar de forma que o utilizador consiga ver.
  • Em algum cliente SQL? Pode ser que esse cliente tenha configuração para poderes ver também de forma facilmente entendivel

Já agora, 1602298800000 não é 2021-10-05 mas sim 2020-10-10