JSpinner исключительно для времени - PullRequest
2 голосов
/ 01 апреля 2011

Я использую JSpinner для ввода времени; однако когда я использую метод getValue, я получаю время 1 января 1970 года, так как это дата начала по умолчанию. Как я могу получить время и время в одиночестве? Меня не интересует дата

NB. Я уже использовал dateEditor. Возможно, моя JSpinnerDateModel не подходит?

1 Ответ

4 голосов
/ 01 апреля 2011

Вы можете создать экземпляр JSpinner и отформатировать дату как время, а затем просто извлечь время в конце:

    JSpinner jSpinner1 = new JSpinner();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date(0));
    Date earliestDate = calendar.getTime();
    calendar.add(Calendar.MINUTE, 1439); // number of minutes in a day - 1
    Date latestDate = calendar.getTime();
    SpinnerDateModel model = new SpinnerDateModel(earliestDate,
            earliestDate,
            latestDate,
            Calendar.MINUTE);
   jSpinner1.setModel(model);
   jSpinner1.setEditor(new JSpinner.DateEditor(jSpinner1, "hh:mm"));

   Date d = (Date)jSpinner1.getValue();
   Calendar c = Calendar.getInstance();
   c.setTime(d);
   c.get(Calendar.HOUR);
   c.get(Calendar.MINUTE);
...