Когда вы создаете экземпляр класса java.util.TimeZone
на основе пользовательского идентификатора, который непризнан (например, имеет опечатку), вы получаете часовой пояс GMT.TimeZone - как отличить часовой пояс GMT и непризнанный часовой пояс?
TimeZone timezone = TimeZone.getTimeZone("Europ/Zurich"); //'e' missing in 'Europe'
System.out.println(timezone.getID()); //result: "GMT"
Как я могу различать «реальный» часовой пояс GMT и непризнанный?
Сравните идентификатор с оригинальным? – RealSkeptic
Нечего сравнивать. Я получаю пользовательский идентификатор от внешнего источника. Я хочу быть уверенным, был ли это правильный, действительный пользовательский идентификатор –
Сравните этот пользовательский идентификатор с результатом 'getID()' из только что созданного часового пояса, а не просто его печать. Если они не совпадают, это означает, что пользовательский идентификатор не был сам «GMT», поэтому он должен быть недействительным. В любом случае, вы всегда можете проверить идентификатор и список действительных идентификаторов * до * создания часового пояса. – RealSkeptic