Formatar data

2 respostas
arthurgon

Olá pessoal;

Eu to com uma tremenda dificuldade para formatar um campo do tipo TextField que "deveria" receber uma data, que o usário digita.
A idéia é que a formatação fique como "DD/MM/YYYY". Não tem como eu utilizar a formatação do Swing, pois estou usando SWT, mas já me disseram que dá pra fazer a formatação "na unha".
Eu fiz uma formatação mas não adiantou muito, pois o campo não reconhece o método que mandei.

Ficou assim:

public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				
                            private Text textDataIni = null;
			   
                            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");  
			    try {
			    	textDataIni.setData(format.parse(""));
				} catch (ParseException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}  
				
				System.out.println("Data Inicial"); // TODO Auto-generated Event stub widgetSelected()
			}
		});
Também tentei esse outro método:
public static String formatarData(String data) {
		while (data.length() < 21) {
			data = "0" + data;
		}
		return formatar(data, "DD/MM/YYYY");
	}

//e chamo o método dessa forma:

textDataIni.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				//Aqui chamo o método
                        textDataIni.setText(Util.formatarData(""));
			   
				
				System.out.println("Data Inicial");
			}
		});

De todo jeito o campo não reconhece ambas as formatações. Se alguem tiver alguma idéia...

Valeu.

2 Respostas

robinsonbsilva

pelo que entendi você está querendo formatar esse JTextField, colocar uma mascara nele né!?
Essa formatação que você fez só serve para após de recuperar a data e jogar em um Objeto Date() ele mudar o formato para DD/mm/YYYY…

veja esse link…a formatação é outra mas da para adaptar!

http://www.guj.com.br/posts/list/22101.java

T

Eu faço da seguinte maneira:

private void jTextField1KeyReleased(java.awt.event.KeyEvent evt)                                         
    {                                             

           String formata = jTextField1.getText();      
            if (formata.length()==2)
            {
                formata = formata + "/";
                jTextField1.setText(formata);
            }
            if (formata.length()==5)
            {
                formata = formata + "/";
                jTextField1.setText(formata);
            }
    }

Aqui funcionou.
Espero ter ajudado.

Criado 22 de julho de 2008
Ultima resposta 22 de jul. de 2008
Respostas 2
Participantes 3