2013-03-08 5 views
2

Мне удалось получить конкретный часовой пояс с помощью утилиты TimeZone, поскольку в настоящее время я использую .getDefault в качестве примера. Однако я не могу получить точное время в стране именно с этим, поэтому мне было интересно, как мне его реализовать? И должен ли я использовать календарь? Ниже мой код.Как получить конкретное время с любого часового пояса в Android?

TimeZone tz = TimeZone.getDefault(); 
String TimeZoneName = tz.getDisplayName(); 
int TimeZoneOffset = tz.getRawOffset()/(60 * 60 * 1000); 

t.setText("default time zone:" + 
     TimeZoneName + " : " +String.valueOf(TimeZoneOffset) + tz.getID()); 

это приходит с часовым поясом по умолчанию: Greenwich Того времени по Гринвичу: 0, Европа/Дублин, и я хотел бы, чтобы отобразить точное время на конце. Спасибо за вашу помощь!

+0

@gravinSweeney мой ответ решить вашу проблему? – DjHacktorReborn

ответ

2

Joda Time имеет полный список Canonical ID, откуда вы можете получить TimeZone в зависимости от Canonical ID.

Итак, если вы хотите, чтобы получить местное время в Нью-Йорке в этот самый момент, вы должны сделать следующее

// get current moment in default time zone 
    DateTime dt = new DateTime(); 
    // translate to New York local time 
    DateTime dtNewYork = dt.withZone(DateTimeZone.forID("America/New_York")); 
Смежные вопросы