Java понимает только очень простой пользовательский формат зоны, например,
GMT+9:30
По умолчанию будет GMT, если у вас есть что-то, что он не распознает.
Зона Java по умолчанию не изменяется при изменении часового пояса ОС. Вы должны перезапустить JVM. Раньше он обновлял часовой пояс при каждом вызове getDefaultTimeZone (), но я не знаю, почему он прекратил это делать с Java 5.
Еще один недостаток Java Timezone заключается в том, что setDefaultTimezone () влияет на вызывающий поток только при работе с SecurityManager.