Sammys
Sammys

Reputation: 1453

Android: TimePicker setIs24HourView not working

I am trying to use the TimePicker in the 24 hour format and I am using setIs24HourView= true, but I am still not getting 24 hour format on the TimePicker. Here is my code in the onCreate of the Activity.

    timePicker = (TimePicker) findViewById(R.id.timePicker1);
    timePicker.setIs24HourView(true);

I even tried timePicker.setCurrentHour(cal.HOUR_OF_DAY) after setIs24HourView, but I am not able to see the 24 hour format on the TimePicker.

<TimePicker
    android:id="@+id/timePicker1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="110dp" />

Am I missing anything here?

enter image description here

Upvotes: 6

Views: 17968

Answers (5)

krguang
krguang

Reputation: 11

timePicker = (TimePicker) findViewById(R.id.timePicker1);

timePicker.setIs24HourView(true);

We need to add this:

Calendar calendar = Calendar.getInstance();

timePicker.setCurrentHour(calendar.get(calendar.HOUR_OF_DAY));

Upvotes: 0

Sammys
Sammys

Reputation: 1453

setting timePicker.setCurrentHour(Calendar.get(Calendar.HOUR_OF_DAY)) solved the problem

Upvotes: 0

Sunny
Sunny

Reputation: 14818

I notice this problem in jelly bean You can set the time to show in 24 hour view

    TimePicker picker = (TimePicker) findViewById(R.id.timePicker1);
    picker.setIs24HourView(true);
    Calendar calendar = Calendar.getInstance();

    int h = calendar.get(Calendar.HOUR_OF_DAY);
    int m = calendar.get(Calendar.MINUTE);

    picker.setCurrentHour(h);
    picker.setCurrentMinute(m);

Upvotes: 8

ElefantPhace
ElefantPhace

Reputation: 3814

ok, I see what the problem is now. It's not correctly setting the currentHour to the new 24 hour format, which is why you got 9:05 instead of 21:05. I'm guessing it isn't 9am where you are! It is a bug, as mentioned in this question seems the only work around, for now, is to do something like:

timePicker = (TimePicker) findViewById(R.id.timePicker1);
timePicker.setIs24HourView(true);
timePicker.setCurrentHour(Calendar.get(Calendar.HOUR_OF_DAY));

I see you tried cal.HOUR_OF_DAY, but didn't provide the code you actually used, but try this and see if it helps.

Upvotes: 10

GrIsHu
GrIsHu

Reputation: 23638

You can just use the device settings and thus let the user make this decision;

 String clockType = android.provider.Settings.System.getString(context.getContentResolver(), android.provider.Settings.System.TIME_12_24);

Upvotes: 0

Related Questions