Transformando String em java.sql.Date

7 respostas
thimor

Ola Pessoal,
Ja procurei respostas no forum mas não achei.

Quero saber de voces como resolvo a seguinte situacao:

Tenho uma jsp com um campo data (dd/mm/yyyy), esse campo data fara parte de um objeto que será persistido em banco de dados usando PreparedStatement (ps.setDate(1, objeto.data). So que a informacao do campo da jsp vem como String (request.getParameter(“data”). Como eu faco a transformaçao da String em java.sql.Date? pois o PreparedStatement nao aceita java.util.Date.

OBS: A data inserida nao será a data do dia e as outras formas de conversao que encontrei transformam em java.util.Date

grato,

Thiago Moreno

7 Respostas

ziegfried

String dataString = request.getParameter("data"); DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); java.sql.Date data = new java.sql.Date(fmt.parse(dataString).getTime());

ps: acostume-se a consultar a api: http://java.sun.com/j2se/1.5.0/docs/api/

Abdon

Oi

Use um Calendar.set para converter para java.util.date, depois instancie o date do sql passando como parametro o metodo getTime.

new java.sql.Date(new java.util.Date().getTime());
L

Lembre-se sempre que no pattern o mês é sempre é MM em maiúsculo(ex: “dd/MM/yyyy”) , senão o resultado se torna inconsistente. mm minúsculo indica minutos.

thimor

ziegfried:
String dataString = request.getParameter("data"); DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); java.sql.Date data = new java.sql.Date(fmt.parse(dataString).getTime());

ps: acostume-se a consultar a api: http://java.sun.com/j2se/1.5.0/docs/api/

Olá obrigado! Sim, consultei a API so que eu olhe i simpledateformat e nao entendi muito bem! olhei o metodo parse e tentei fazer porem nao oberservei esse .getTime e qndo fiz um teste ele deu erro qndo utilzei o java.sql.Date. Obrigado!

thimor

Abdon:
Oi

Use um Calendar.set para converter para java.util.date, depois instancie o date do sql passando como parametro o metodo getTime.

new java.sql.Date(new java.util.Date().getTime());

Valeu Obrigado!

thimor

ok, eu estava usando o MM eh que na digitação eu coloquei minusculo! valeu pela força! Obrigado!

ziegfried

thimor:
ziegfried:
String dataString = request.getParameter("data"); DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); java.sql.Date data = new java.sql.Date(fmt.parse(dataString).getTime());

ps: acostume-se a consultar a api: http://java.sun.com/j2se/1.5.0/docs/api/

Olá obrigado! Sim, consultei a API so que eu olhe i simpledateformat e nao entendi muito bem! olhei o metodo parse e tentei fazer porem nao oberservei esse .getTime e qndo fiz um teste ele deu erro qndo utilzei o java.sql.Date. Obrigado!


Que fique bem claro que o parse(String s) retorna um java.util.Date. Portanto, getTime() é um método chamado por um objeto java.util.Date que retorna um long representando a data em milisegundos. O fiz porque há um construtor da java.sql.Date que aceita um long representando a data em milisegundos.

Boa sorte!

Criado 20 de março de 2007
Ultima resposta 21 de mar. de 2007
Respostas 7
Participantes 4