No entanto, quando faço o mesmo código em uma página JSP o resultdado é diferente: Jan 25, 2005. E para complicar um pouco mais, nas máquina de desenvolvimento não acontece isso, mas quando faço o deploy da aplicação no servidor de teste.
Tanto as máquinas de desenvolvimento quanto o servidor de teste rodam Linux e o timezone do sistema está configurado para Brazil/East. Todas rodam a mesma versão do JBoss (3.2.5) com Tomcat (4.1) e do JDK (1.5.0).
Eu sei que o formato MEDIUM depende do locale do sistema e que o formato SHORT é estritamente numérico, o que resolveria o problema. Porém, o que eu não entendo é porque na mesma máquina de teste, o código retorna resultados diferentes dependendo se é uma aplicação java ou uma página JSP.
Por que você não usa o padrão do formato desejado… no caso “dd/MM/yyyy”?
lcmetzger
Tente fazer assim:
System.out.println( new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime()));
desta maneira o formato é fixado para dia/mes/ano.
edneymatias
Olá!
Valeu pelas respostas! Mas…
Se eu forçar um padrão vai funcionar…como no exemplo do Icmetzger…mas não era para o DateFormat considerar o locale do sistema? Não era para o locale do sistema ter um único formato MEDIUM? Como pode uma aplicação java imprimir em um formato e uma página JSP em outro? A única diferença de configuração entre as máquinas de desenvolvimento e a máquina de teste é que a última não roda o x-window. Quando a gente desenvolve e testa nas nossas máquinas, não poderia o X alterar de alguma forma (variável de ambiete) o modo como o tomcat processa os JSP?
Muitas questões em só e-mail! Vou tentar dividir em tópicos diferentes da próxima vez!
Até,
Matias
T
thingol
é, mas eu lhe pergunto, qual é o locale? Imprima o locale para cada uma dessas situações que dão resultados diferentes. Você vai se surpreender.
De novo, qual é o locale? Um único out.println (Locale.setDefault()) no seu JSP ou System.out.println na sua aplicação Java vai imprimir coisas diferentes conforme a aplicação, ou JSP. Tudo é questão de como as coisas estão configuradas.
Acho que não; o que pode mudar é a linguagem default do web browser (usando X você provavelmente está usando o Mozilla configurado para English, e fora do X provavelmente você está usando alguma máquina Windows configurada para português…) Em uma aplicação Java de linha de comando, nem sei que locale está sendo usado no seu Linux (talvez Portuguese)