Как получить только год, месяц, день, гор и секунды из Java JSpinner

Я работаю над своим проектом MySQL, и у меня есть одна проблема. Я сделал один JSpinner, который показывает текущую дату и время. Теперь я хочу сохранить эту дату и время в одной переменной datetime для последующего использования, но проблема в том, что когда я сохраняю значение из JSpinner в свою переменную datetime, оно не в формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС». Вместо этого моя переменная datetime содержит следующее: «Сб, 17 августа, 19:07:03 CEST 2013». Я хочу сохранить только числа в классическом формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС», потому что моя база данных на моем сервере принимает данные только в этом формате, но я не знаю, как их преобразовать. Пожалуйста помоги!

Вот мой код:

String datum_vrijeme;
SpinnerDateModel s1 = new SpinnerDateModel();
spinner1 = new JSpinner(s1);
JSpinner.DateEditor d1 = new JSpinner.DateEditor(spinner1, "yyyy/MM/dd   HH:mm:ss");
spinner1.setEditor(d1);
Object sp = spinner1.getValue();
datum_vrijeme=sp.toString();

person Mahir Duraković    schedule 17.08.2013    source источник


Ответы (1)


Вы можете получить объект java.util.Date, который на один шаг ближе к вашей базе данных MySQL, вместо строки.

Date date = (Date) spinner1.getValue();
person Martijn Courteaux    schedule 17.08.2013
comment
Извините, но я использую коннектор JDBC, и мне нужно написать свой sql-запрос, поэтому мне нужно, чтобы моя дата и время были в строковом формате, чтобы я мог объединить его со своим строковым запросом, чтобы, наконец, выполнить его, чтобы обновить строку моей базы данных... - person Mahir Duraković; 17.08.2013
comment
Вы должны сделать, как предлагает Мартин, и передать объект Date в качестве параметра PreparedStatement. - person VGR; 17.08.2013
comment
@MahirDurakovic: Это ПЛОХАЯ практика! Ищите PreparedStatements и SQL Injection, и вы поймете, почему. Подготовленные операторы поддерживают объекты Date. - person Martijn Courteaux; 17.08.2013
comment
Я попробовал ваши предложения, но у меня снова та же проблема. Моя переменная Date находится в следующем формате: «Сб, 17 августа, 19:07:03 CEST 2013», я хочу, чтобы она была в классическом формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС». - person Mahir Duraković; 17.08.2013
comment
@Mahir Duraković должен проверить, требуется ли преобразовать util.Date в sql.Date или в Timestamp на ваше усмотрение. Кстати, здесь должно быть множество вопросов и ответов, обратите внимание, что во всех случаях вам нужно разделить логику для Swing (JSpinner), основных классов Java (util.Date) и JDBC (DateTime/Timestampt) - person mKorbel; 17.08.2013