Converter um campo de um Text Field em Date

Bom dia pessoal,
Estou tentando converter um campo extraído de um Text Field em um com formato de data e não consigo.

mf.tfMov.getText()

mf é a referência à classe que está o TextField.
tfMov é o campo.

Eu já tentei fazer a conversão de duas maneiras:

  1. Date.valueOf(mf.tfMov.getText()

Assim aparece a seguinte mensagem:

2)Date.parse(mf.tfMov.getText()
Dessa forma o eclipse sugere:

onde o campo que estou tratando é o primeiro atributo do método .

Alguém sabe como resolver esse problema? Desde já agradeço qualquer ajuda a respeito.

o método java.util.Date.parse(String arg0) retorna um long e não um objeto Date como você esperava.

Tentei fazer o exemplo e apareceu essa msg de erro:

então eu alterei o código assim:

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");  
Date data = (Date) fmt.parse(mf.tfMov.getText()); 

mas não deu certo, apareceu a seguinte msg:

O problema é que esse campo está sendo comparado a um outro campo data que está em outro método e este outro campo é um valor trazido de uma Stored Procedure (Oracle) e continua aparecendo a msg de erro:

Então eu fui no outro método:

public int getMoradorVila(Date data, int emp, int mat) {
	int valor = 0;
	try {
		CallableStatement cstmt = (CallableStatement) Conexao.getConnection().prepareCall(
						"{CALL " + "package.procedure(?,?,?)}");
		cstmt.registerOutParameter(1, Types.INTEGER);
		cstmt.setDate(1, data);
		cstmt.setInt(2, emp);
		cstmt.setInt(3, mat);
		cstmt.execute();
		
		valor = cstmt.getInt(1);
		cstmt.close();
	} catch (Exception sqlex) {
		Tratamentos.tratamentos(sqlex);
	}
	return valor;
}

Aqui está aparecendo um erro na linha 7, então eu alterei a e ela passou a ficar assim:

cstmt.setDate(1, (java.sql.Date) data);

Assim não aparece mais a msg de erro, mas quando eu compilo continua aparecendo a msg:

[quote=swing]O problema é que esse campo está sendo comparado a um outro campo data que está em outro método e este outro campo é um valor trazido de uma Stored Procedure (Oracle) e continua aparecendo a msg de erro:

Então eu fui no outro método:

public int getMoradorVila(Date data, int emp, int mat) {
	int valor = 0;
	try {
		CallableStatement cstmt = (CallableStatement) Conexao.getConnection().prepareCall(
						"{CALL " + "package.procedure(?,?,?)}");
		cstmt.registerOutParameter(1, Types.INTEGER);
		cstmt.setDate(1, data);
		cstmt.setInt(2, emp);
		cstmt.setInt(3, mat);
		cstmt.execute();
		
		valor = cstmt.getInt(1);
		cstmt.close();
	} catch (Exception sqlex) {
		Tratamentos.tratamentos(sqlex);
	}
	return valor;
}

Aqui está aparecendo um erro na linha 7, então eu alterei a e ela passou a ficar assim:

cstmt.setDate(1, (java.sql.Date) data);

Assim não aparece mais a msg de erro, mas quando eu compilo continua aparecendo a msg:

Faça isso:

[code]ps.setObject(++index, new java.sql.Date(item.getDataCadastro().getTime()));

// No seu caso
cstmt.setDate(1, new java.sql.Date(data.getTime()));[/code]


SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");
Date data = fmt.parse(mf.tfMov.getText());

Se você enviar uma String no padrão 25/12/2007 vai funcionar

:shock:

java.util.Date cannot be cast to java.sql.Date

O import deve ser do java.util.Date e você esta com o java.sql.Date, nada de sql, é util


 SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");    
 Date data = (Date) fmt.parse(mf.tfMov.getText());