Java JVM nomes fuso horário via java.text.SimpleDateFormat
Pergunta
Javadocs em estado java.text.SimpleDateFormat o seguinte sobre o "z" carta padrão:
Horário padrão do Pacíficoz Fuso Geral fuso horário; PST; GMT-08: 00
fuso horário Geral: Os fusos horários são interpretados como texto se eles têm nomes. Para fusos horários que representam um valor de deslocamento GMT, a seguinte sintaxe é utilizada ...
A pergunta é - "se eles têm nomes" ... onde ele começa esses nomes de? Eu vi em um ambiente JST chegando como "JST" e em outro chegando como "GMT + 9"
Solução
Os nomes de fuso horário são incorporados no JVM. Eles vêm do tz banco de dados mantido por Arthur David Olson. As disparidades entre os nomes de fuso horário são causados ??por JVMs que utilizam diferentes versões do banco de dados tz. Sun fornece uma Fuso Horário atualizador ferramenta para seus JVMs que você pode usar para atualizar o nome do fuso horário definições. Claro que é sempre melhor usar a última atualização do JVM, mas isso nem sempre é uma opção.
Outras dicas
Deve apoiar nomes de exibição de fuso horário, conforme definido pelo LDML
( Unicode Locale dados Markup Language ) especificação.
Você vai encontrar todos os nomes na Time Zone Localization , especialmente em " aliases "