Bom dia colegas !
Tenho postado várias dúvidas sobre como tratar datas na camada de apresentação e na de persistência…
Com a ajuda de vocês e principalmente do fabiocsi tenho conseguido resolver vários problemas.
Bom… desta vez a minha dúvida é a seguinte:
Tentei criar uma classe com dois métodos, um para receber um Date e retornar um string, e outro para receber um String e retornar um Date.
Basicamente, a intenção era:
Com o primeiro método: utilizar na tela para receber um Date do banco, converter em String num formato escolhido para poder mostrar num JTextField.
E com o segundo: utilizar na camada de persistência para receber um String, converter em Date num formato escolhido para poder gravar no banco.
Segue meu código e o erro que esta dando na compilação:
package com.atm.util;
import java.sql.Date;
import java.text.SimpleDateFormat;
/**
*
* @author r100320
*/
public class ConverterData {
public static String dateToString(Date data, String formato){
SimpleDateFormat sdf = new SimpleDateFormat(formato);
return sdf.format(data);
}
public static Date stringToDate(String data, String formato) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(formato);
try {
return (Date) sdf.parse(data);
} catch (ParseException ex) {
throw new Exception("A Data é inválida ou nao encontra-se no formato DD/MM/YYYY");
}
}
}
E agora o erro que recebo na compilação:
init:
deps-jar:
Compiling 1 source file to D:\ProjetoATM\atm\build\classes
D:\ProjetoATM\atm\src\com\atm\util\ConverterData.java:28: incompatible types
found : java.util.Date
required: java.sql.Date
return sdf.parse(data);
1 error
FALHA NA EXECUÇÃO (tempo total: 4 segundos)
O erro é na linha:
return sdf.parse(data);
Se eu faço um cast para (Date) funciona… mas eu não entendi porque !
return (Date) sdf.parse(data);
Se alguém puder me ajudar, fico muitíssimo grato !
[]s
