Java Date - Android Time Picker - PullRequest
       9

Java Date - Android Time Picker

1 голос
/ 05 августа 2011

У меня проблемы с получением правильного формата здесь.Я пытаюсь получить правильную дату из моего средства выбора даты в Android для вставки в объект даты.

Например:

public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 

public void onTimeSet(TimePicker view, int hourOfDay, int minute) 

Эти обработчики событий дадут мне: 2011, 7,5 10,30 (если дата была 5 августа 2011 года, а время было 10:30) Где я могу получить Am / Pm в Android?

Я делаю это, но это не работает правильно:

Date date = new Date(year,monthOfYear,dayOfMonth,hourOfDay,minute);

Мне нужно выполнить Android-эквивалент этого кода ежевики.Средство выбора даты Blackberry любезно предоставляет объект даты (а не необработанные целые числа):

public void run() {
            DateTimePicker datePicker = DateTimePicker.createInstance();

            // Set the max time to 24 hours into the future. This allows for selecting clips
            // across time zones, but prevents the user from wandering off into no-mans' land.
            Calendar maxDateTime = Calendar.getInstance();
            maxDateTime.setTime(new Date(System.currentTimeMillis() + 24*3600*1000));
            datePicker.setMaximumDate(maxDateTime);

            if (datePicker.doModal())
            {
                Calendar selectedDate = datePicker.getDateTime();
                Date beforeDate = selectedDate.getTime();
                ClipStore.getInstance().getClips(camera, beforeDate);
            }
        }

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Использование календаря:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DATE, dayOfMonth);
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date date = cal.getTime();

Время суток меняется с 0 на 23.

0 голосов
/ 05 августа 2011

На складе Java.util будет использовать военное время.ака 10:30 относится к 10:30 утра.22:30 будет показано как 22:30.Если вы хотите преобразовать его в pm, попробуйте что-то вроде этого:

public String ampmChanger (String time) {
  int hour = (int)time.substring(0,2);
  String timeAppendage;
  if (hour > 12) { // For 1 PM and on
    hour -= 12; 
    timeAppendage = " PM"; 
  }
  else if (hour == 12) timeAppendage = " PM"; // For 12 pm
  else timeAppendage = " AM"; // For 0(12AM) to Noon

  return String.valueOf(hour)+time.substring(2)+timeAppendage;
}
0 голосов
/ 05 августа 2011

Я считаю, что hourOfDay использует 24-часовое время, поэтому оно должно быть в диапазоне от 0 до 23 включительно. Если оно больше> = 12, то это PM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...