Transformando String em java.sql.Date

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

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/

1 curtida

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());

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.

[quote=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/[/quote]

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!

[quote=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()); [/quote]

Valeu Obrigado!

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

[quote=thimor][quote=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/[/quote]

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![/quote]
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!