Concatenação de campos TextField

5 respostas
arthurgon

Olá pessoal;

Alguém aí saberia me dizer como faço uma concatenação de dois campos, no caso um campo DATA e um campo HORA para enviar ao banco de dados?
Preciso que o resultado da concatenação fique assim:

EX:17/07/2008 17:00

São campos distintos...a data e a hora...por isso o motivo da concatenação.

Esse é o campo da minha Data inicial:

labelDataIni = new Label(this, SWT.NONE);
		labelDataIni.setBounds(new Rectangle(35, 150, 90, 20));
		labelDataIni.setFont(new Font(Display.getDefault(), "Verdana", 10,
				SWT.BOLD));
		labelDataIni.setText(" Data inicial:");

		textDataIni = new FormattedText(this, SWT.BORDER);
		textDataIni.getControl().setBounds(new Rectangle(140, 150, 100, 20));
		textDataIni.getControl().setFont(new Font(Display.getDefault(), "Verdana", 8,
				SWT.BOLD));
		textDataIni.setFormatter(new DateFormatter("dd/MM/yyyy"));

E esse é o campo da minha HORA INÍCIO:

labelHoraIni = new Label(this, SWT.NONE);
		labelHoraIni.setBounds(new Rectangle(330, 150, 95, 20));
		labelHoraIni.setFont(new Font(Display.getDefault(), "Verdana", 10,
				SWT.BOLD));
		labelHoraIni.setText(" Hora Inicial:");


		textHoraIni = new FormattedText(this, SWT.BORDER);
		textHoraIni.getControl().setBounds(new Rectangle(435, 150, 115, 20));
		textHoraIni.getControl().setFont(new Font(Display.getDefault(), "Verdana", 8,
				SWT.BOLD));
		textHoraIni.setFormatter(new TimeFormatter("hh:mm a"));
Como faço para concatenar os dois resultados digitados e enviar ao Banco de dados?(MySql)

Valeu gente.

5 Respostas

X

Acredito que seja só usar o concatenador “+”…

Seria algo parecido com:

String data = dataIni.getText()+" "+horaIni.getText();

O +" "+ é para ficar um espaço entre a data e a hora…

Ai depois tu cria um PreparedStatement e seta o valor da data, pode ser como String mesmo…

prepared.setString(1,data);

cassioso

Após concatenar como foi mostrado em cima, talvez seja interessante você utilizar um SimpleDateFormat no formato que você especifica para criar um objeto do tuipo Date na hora de gravar no banco.

algo como…

String dataString = dataIni.getText()+" "+horaIni.getText(); 

SimpleDateFormat sdf = new SimpleDateFormat("DD/MM/yyyy hh:mm");
Date data = null;
try {
   data = sdf.parse(dataString);
} catch (ParseException e) {
   System.out.println("ERRO AO CONVERTER");
   e.printStackTrace();
}

Mas, aí em cima parece meio armengado. Esse negócio de transformar de data para texto para depois transformar para data novamente… Deve ter uma maneira mais fácil de manipular as datas e criar um objeto Date novo.

arthurgon

Então…essa é a minha dúvida. Devo então criar um método apenas para concatenar os campos?

cassioso

aí é uma questão de gosto mesmo…

Mas, se você for utiilzar esta operação em vários lugras, o interessante é vc garantir o encapsulamento e coesão deixando ele separado em um método.

algo como…

public Date concatenaDatas(Date dia, Date hora){
   String dataString = dia.getText()+" "+hora.getText(); 
   SimpleDateFormat sdf = new SimpleDateFormat("DD/MM/yyyy hh:mm");
   Date novaData = null;
   try {
      novaData = sdf.parse(dataString);
   } catch (ParseException e) {
      System.out.println("ERRO AO CONVERTER");
      e.printStackTrace();
   }
   return novaData;
}

não tenho certeza, mas acho que vc pode operar diretamente com os campos de data, sem precisar converter para String… algo como:

public Date concatenaDatas(Date dia, Date hora){
   Date novaData = new Date();
   novaData.setTime(dia.getTime() + hora.getTime());
   return novaData;
}
arthurgon

Valeu Cassioso…vou tentar e já te falo.

Criado 24 de julho de 2008
Ultima resposta 24 de jul. de 2008
Respostas 5
Participantes 3