2013-06-17 4 views
0

Я хочу проверить, была ли строка, преобразованная в Календарь, до или после этого. я не понимаю, почему это не работает:Назначить конкретный час календарю

public final static SimpleDateFormat DATE_FORMAT_RESERVATION_HOUR = new SimpleDateFormat("HH:mm");  
String str = "14:00"; 

Calendar now = Calendar.getInstance(); 
Calendar selected = Calendar.getInstance(); 
//avoiding try/catch in this post 
selected.set(Calendar.HOUR_OF_DAY, (int) DATE_FORMAT_RESERVATION_HOUR.parse(str).getTime()); 
// selected = now : 7352-05-18 00:49:33 (instead of 2013-06-17 14:00:00 
Log.d("test", "after?" + selected.after(now)); 

Я хотел бы «выбран», чтобы быть сейчас, но с час, указанный в ул. Любая помощь приветствуется! Благодаря

+0

Вы хотите указать, что выбранный вами формат в указанном ниже формате? – dosdebug

+0

нет, я хочу, чтобы он был равен этому значению (так что время, возвращаемое Calendar.getInstance(), но с часом, установленным в 14:00 в этом случае – estoke

+0

Когда я пытаюсь его проанализировать, я получаю ParseException, говорящий «Неспособная дата : «14:00» '. Вы не получите то же самое? – BLaZuRE

ответ

1

я не понимаю, почему это не работает:

getTime():

Возвращает количество миллисекунд, прошедших с 1 января 1970, 00:00:00 GMT представленный этим объектом Date.

Это не значение, которое вы хотите установить Calendar.HOUR_OF_DAY для получения желаемого результата.

  1. Вы можете использовать устаревший getHours() в вашем случае:

    selected.set(Calendar.HOUR_OF_DAY, 
          (int) DATE_FORMAT_RESERVATION_HOUR.parse(str).getHours()); 
    

2. Если переменная str всегда будет в таком формате, то вы также можете сделать это:

selected.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str.split(":")[0])); 
+0

спасибо, но выбранному не присвоено новое значение после этого изменения. Кроме того, я бы предпочел пойти на не-устаревший метод:/ – estoke

+0

* selected не был присвоен новому значению после этого изменения. * Что это значит? – NINCOMPOOP

+0

ok У меня это работает, см. Мои комментарии выше, спасибо за помощь – estoke

Смежные вопросы