Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MarquinhosJava

Formantando datas para MySQL

Recommended Posts

Bom dia amigos, estou precisando formatar minhas datas que o usuario digita nos textbox antes de salvar na base de dados. Já pesquisei na internet sobre isso e tem o SimpleFormatDate, porem não estou conseguindo fazer isso funcionar. A maioria dos postes que achei com o SimpleFormatDate fala sobre hora do sistema, mas o que eu quero é formatar a hora que o usuario digita no textbox:

 

esse exemplo me serviria se funcionasse. rsrsrs

 

//Configurando tudo...

Locale local = new Locale("pt", "BR");

String dataHoraConfig = "dd/MM/yyyy HH:mm:ss";

SimpleDateFormat formatador = new SimpleDateFormat(dataHoraConfig, local);

 

//Obtendo o objeto Date...

String dataString = "01/11/2008 03:08:50";

Date data = formatador.parse(dataString);

 

mas esta dando o erro:

org.apache.jasper.JasperException: Unable to compile class for JSP:

 

An error occurred at line: 204 in the jsp file: /visitas/relatorios/relClientes.jsp

The type Date is ambiguous

201:

202: //Obtendo o objeto Date...

203: String dataString = "01/11/2008 03:08:50";

204: Date data = formatador.parse(dataString);

205:

206:

207:

 

 

Meus importes são o seguinte:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>

<%@ page import="java.util.*, java.text.*" %>

<%@ page import="java.*, java.text.*" %>

 

Alguem por favor me ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz eu sempre trabalhei com datas no MySQL e outros bancos de dados, no começo eu sempre tentava fazer igual ao código que você escreveu ai, mas como sempre gerava uma exception eu mudei minha forma de fazer, hoje em dia eu faço o seguinte:

 

Se eu receber uma data 15/01/2009 Eu simplesmente faço o seguinte, divido a String nas posições que eu quero com subString e depois concateno novamente para formatar a data igual ao padrão SQL.

 

 

No SQL ele recebe dessa forma 2009-01-15.

É só você ficar fazendo com substring e funciona perfeitamente.

 

 

Vamos dizer que o usuário digitou uma data de nascimento qualquer [ 26/10/1988 ]

 

Eu faço o seguinte:

 

			String dia = "";
			String mes = "";
			String ano = "";
			
			String data_nascimento = request.getParameter("data_nascimento");
			dia = data_nascimento.substring(0,2);
			mes = data_nascimento.substring(3,5);
			ano = data_nascimento.substring(6);
			data_nascimento = ano + "-" + mes + "-" + dia;

Nesse exemplo é facilmente reparado que eu pego a string data_nascimento e saiu destrinchando ela em pequenos pedaços e depois concateno no formato de data para SQL para inserção no banco de dados.

 

A mesma coisa faço ao contrario, quando recebo a data do banco eu formato ela para mostrar para o usuário.

 

 

String dia = "";
				String mes = "";
				String ano = "";
				
				String data_nascimento = rs.getString("data_nascimento");
				dia = data_nascimento.substring(8);
				mes = data_nascimento.substring(5,7);
				ano = data_nascimento.substring(0, 4);
				data_nascimento = dia + "-" + mes + "-" + ano;

Agora eu peguei a data destrinchei e coloquei no padrão brasileiro.

 

 

Tenta dessa forma, é bem menos dor de cabeça e não vai precisar fazer imports e configuração da linguagem java. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Weibson, valeu pela ajuda. você esta certo ficar quebrando com o SimpleFormatDate não dá. rsrs.

 

vou usar seu codigo.

valeu pela ajuda, pois eu num sabia usar o sbstring no java e agora com seu codgo ficou facil.

 

um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.