Можно получать список часовых поясов. Например, вызываешь
String [] s = TimeZone.getAvailableIDs();
И получаешь список из двух строчек: "UTC" и "GMT".
Ну и что с этими строчками делать?
Можно попытаться определить сам сдвиг часового пояса на данном телефоне так:
TimeZone tz = TimeZone.getDefault();
int raw = tz.getRawOffset();
Но опять же нет гарантии, что этот часовой пояс на телефоне выставлен и выставлен правильно. Бывают модели, в которых часовой пояс вообще не настраивается, соответственно raw там всегда будет выдавать 0.
Интересно опробовать данный принцип на реальных телефонах.
Я тут выложил небольшую библиотечку, кто может - потестируйте и отпишитесь
правильно ли определяется сдвиг часового пояса?