/ / Як змінити часовий пояс в android? - андроїд, час, діалог, вибір, зона

Як змінити часовий пояс на android? - андроїд, час, діалог, збирач, зона

У мене є текст редагування з вибором часу. Коли я натиснув на діалогове вікно редагування тексту, виберіть діалогове вікно вибору часу. Якщо я вибрав 22:00, редагування тексту має відображатися до 22:00, але я отримую 22:00. Як я можу це змінити? Моя частина кодування наведена нижче ..

 protected void showTime()
{
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener()
{

@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute)
{
hour=hourOfDay;
min=minute;

if(hourOfDay>12)
{
hourOfDay -= 12;
zone = "PM";
}
else
{
zone = "AM";
}
edtTime.setText(" "+pad(hour) + ":" + min+ " "+zone);
}
}, hour, min, true);
tpd.setTitle("Select Time");
tpd.show();

}

Відповіді:

0 для відповіді № 1

Зверніть увагу, що ви лише змінюєте hourOfDay як hourOfDay -= 12; Отже, вам потрібно використовувати ту саму змінну у вашому setText() дзвоніть також hour як і раніше посилається на вихідне значення 24-годинного формату.

@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute)
{
hour=hourOfDay;
min=minute;

if(hourOfDay>12)
{
hourOfDay -= 12;
zone = "PM";
}
else
{
zone = "AM";
}
edtTime.setText(" "+pad(hourOfDay) + ":" + min+ " "+zone);
}

Будь ласка, використовуйте Java DateTime API замість використання математики для перетворення з 24-годинного формату (що onTimeSet() параметри входять) до AM / PM. Крайові корпуси (як 00:00) важче відобразити інакше. Ось як я запропонував би вам це зробити.

DateFormat df = new SimpleDateFormat("hh:mm a"); // [1-12]:[0-59] AM|PM

Calendar cal = Calendar.getInstance();
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);

edtTime.setText(df.format(cal.getTime()));

Перевірте SimpleDateFormat документи для отримання додаткової інформації.