Problemas com SimpleDateFormat

estou tendo problemas com o SimpleDateFormat.

Estou precisando armazenar duas datas no format DD/MM/AAAA, eu vi aqui no guj o seguinte código.

   SimpleDateFormat Formatar = new SimpleDateFormat("DD/MM/YYYY");//instancio a classe e passo como parâmetro o formato que eu quero. Só que tá dando esse erro aqui.

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Illegal pattern character 'Y'
        at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769)
        at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:501)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:476)
        at gui.CadFuncionario.preencherAtributos(CadFuncionario.java:521)
        at gui.CadFuncionario.jButton1ActionPerformed(CadFuncionario.java:497)
        at gui.CadFuncionario.access$000(CadFuncionario.java:26)
        at gui.CadFuncionario$1.actionPerformed(CadFuncionario.java:379)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Será que alguém sabe como resolver?

O compilador está reclamando do uso do Y em formato de caixa alta (maiúsculo) tanto o y (caracter do ano) quanto o d (caracter do dia), devem estar em caixa baixa (minúsculo), caso contrário é gerado uma exceção que é o caso.


Date data = new Date();

System.out.println("A data do sistema sem formatação --> " + data);

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");

System.out.println("A data do sistema com a formatação --> " + formato.format(data));

experimente trocar os caracteres entre caixas baixa e alta para ver os resultados.

Aqui você encontra exemplos!
Formatando campos Data com SimpleDateFormat

vlw

Mas me digam uma coisa, qual é a diferença entre o método parse e o método format? Qual é o melhor?

Um é o contrário do outro. Parse: converte String -> Date; Format: converte Date -> String.

Depende do que você quer fazer. É a mesma coisa que perguntar “qual é o melhor: o homem ou a mulher?” - um é o contrário da outra.

Foi passado uma String correspondente a uma data para o método parse do objeto formato que é uma instância da classe SimpleDateFormate
SimpleDateFormat é uma classe concreta para a formatação de datas
O retorno do método parse retorna um objeto Date

Como exemplo poderia utilizar a data que um usuário digitou em uma tela de um sistema, convertendo a mesma que no momento é um texto, portanto uma String (“11/05/2010”), em uma data que possa ser persistida (gravada, salva) em um banco de dados.

System.out.println("Imprimindo retorno do método parse ---> " + formato.parse("11/05/2010"));

E abaixo fazer o contrário buscar uma data em banco de dados, converter em uma String (texto), que pode ser visualizado em uma tela.

Foi passado para o método format um objeto do tipo date, o método format retorna uma String.

System.out.println("Imprimindo retorno do método format ---> " + formato.format(data));

Obs : è importante observar o contexto de utilização dos métodos.