Как отобразить несколько часовых поясов на циферблате Android Wear

Я построил циферблат, который показывает время двумя разными способами. Циферблат имеет 12-часовой формат для текущего часового пояса и 24-часовой формат для GMT. По умолчанию циферблат отображает только текущий часовой пояс, что означает, что моя часовая стрелка для GMT действительно показывает только время в текущем часовом поясе в 24-часовом формате. Как сделать так, чтобы часы отображали несколько часовых поясов одновременно?


person skeete    schedule 03.04.2015    source источник


Ответы (2)


Вы можете создать 2 объекта календаря с разными часовыми поясами, а затем использовать эти объекты:

Calendar germanyTime = new GregorianCalendar(TimeZone.getDefault());//your timezone
Calendar germanyTime = new GregorianCalendar(TimeZone.getTimeZone("GMT+0"));
person x90    schedule 06.04.2015
comment
спасибо, что указали мне в правильном направлении. Где в моем коде это должно применяться? - person skeete; 07.04.2015
comment
этот код демонстрирует основную идею, что вы можете хранить 2 независимых объекта календаря и получать время из разных часовых поясов - person x90; 08.04.2015
comment
Я понимаю, но я не мастер-программист, поэтому для меня это чуждо. ржунимагу - person skeete; 08.04.2015

Приведу пример того, как мне удалось автоматически получить системный формат времени:

// variables
boolean is24Hour = false;
DateFormat df;
Calendar cal;

// get time format
is24Hour = df.is24HourFormat(context);

...

@Override
    public void onDraw(Canvas canvas, Rect bounds) {
    // always get a new instance in your onDraw()
        cal = Calendar.getInstance();

    // get the hours
       if (is24Hour) {
            format = new SimpleDateFormat("H");
            return Integer.valueOf(format.format(cal.getTime()));
        } else {
            format = new SimpleDateFormat("h");
            return (Integer.valueOf(format.format(cal.getTime()));
        }
     } 
person Florianisme    schedule 08.04.2015