Получение времени из JXDatePicker

Можно ли получить не только дату, но и дату и время из компонента JXDatePicker?

Я настроил виджет для отображения этого формата:

SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
JXDatePicker startTime = new JXDatePicker(System.currentTimeMillis); // This gets today's Date, but time appears as 00:00:00
startTime.setFormats(dateFormatter);

Всякий раз, когда я выбираю день в календаре, время устанавливается на 00:00:00, даже если для него было установлено другое значение вручную. Меня это не волнует, но когда я получаю значение JXDatePicker, я получаю 00:00:00, даже если оно было отредактировано. Например, если написать 2012-06-22 07:23:10 в мой JXDatePicker, а затем вызвать dateFormatter.format(startTime.getDate()), я получаю строку "2012-06-22 00:00:00" .

Мне нужно получить значения времени. Есть ли простой способ сделать это? Если это слишком сложно, я могу перейти на другой виджет, который вы предлагаете.


person Roman Rdgz    schedule 22.06.2012    source источник
comment
stackoverflow.com/questions/16111943/java-swing-jxdatepicker   -  person SHASHA    schedule 12.08.2019


Ответы (4)


JXDatePicker предназначен только для извлечения дат. Он не вернется в любое время. Это объясняет, почему вы получаете 00:00:00. Вам придется найти еще один. возможно, это тот, кого вы ищете:

Есть ли хороший и бесплатное средство выбора даты и времени для Java Swing?

person vedant    schedule 22.06.2012

JXDatePicker, возможно, следует использовать только для даты в концепции, но вы все равно можете собрать полный объект Java Date из своего редактора. Просто используйте что-то вроде этого:

JXDatePicker datePicker = new JXDatePicker();
datePicker.setFormats("dd-MM-yyyy HH:mm:ss");

/*
  set in any way value inside datePicker
*/

JFormattedTextField editor = datePicker.getEditor();
Date dateInDatePicker = (Date) editor.getValue();

Используя его таким образом, вы можете собирать весь объект Java Date, не обрезанный только до информации о дате.

person Michał Kupisiński    schedule 15.01.2013

Публикую это для других, кто может посетить этот вопрос, а не для ОП, так как я уверен, что у вас уже есть решение.

Это очень полезное решение. Его очень легко обновлять и настраивать.

http://www.java.net/node/700914

person MeanwhileInHell    schedule 26.03.2013

Так просто. Просто вставьте это в свою часть определений классов.

private JXDatePicker Today= new JXDatePicker(new Date()); 

Это показывает системную дату, например: "09.09.2014"
Если ваши региональные настройки отличаются, попробуйте отформатировать дату следующим образом:

datePicker.setFormats("dd/MM/yyyy");

так далее...

Никаких других вещей ставить не нужно.

person StarCrafter    schedule 09.09.2014