2015-05-22 1 views
-1

Я пытаюсь получить/установить следующий формат даты в базу данных (MySQL) dd/MM/yyyy.Как установить Dateformat dd/MM/yyyy с помощью jDATECHOOSER

В БД столбец «Geburt» установлен как DATE, и уже известно, что стандартный формат от MySQL равен yyyy/MM/dd.

При добавлении к нему я использую jDateChooser для выбора, вставки и обновления данных.

Похоже, это сейчас:

private void wiwTextFocusLost(java.awt.event.FocusEvent evt) {         
    String userId = wiwText.getText(); 

    try { 
     String sql = "SELECT * FROM TBL_TEILNEHMER WHERE WIW= ?"; 
     S**tring dateValue = rs.getString("Geburt"); // What ever column 
     java.util.Date date = new SimpleDateFormat("dd-MM-yyyy").parse(dateValue);** //I added this here from a example I saw here 
     pst = conn.prepareStatement(sql); 
     pst.setString(1,userId); 
     rs = pst.executeQuery(); 

     if(rs.next()) { 
      nameText.setText(rs.getString("Name")); 
      vornameText.setText(rs.getString("Vorname")); 
      geburtChooser.setDate(date); 
      mailText.setText(rs.getString("Mail")); 
      telText.setText(rs.getString("Telefon")); 
      reText.setText(rs.getString("re")); 
      dcText.setText(rs.getString("dc")); 
      emeaText.setText(rs.getString("emea")); 
      assetText.setText(rs.getString("assetid")); 
      modellCombo.setSelectedItem(rs.getString("Model")); 
      herstellerText.setText(rs.getString("hersteller")); 
      strasseText.setText(rs.getString("strasse")); 
      nummerText.setText(rs.getString("nummers")); 
      stadtText.setText(rs.getString("stadt")); 
      privatnummerText.setText(rs.getString("privatnummer")); 
      privatmailText.setText(rs.getString("privatmail")); 
      handyText.setText(rs.getString("handy")); 
      whatsCombo.setSelectedItem(rs.getString("whats")); 
      skypeText.setText(rs.getString("skype")); 
      rs = pst.executeQuery(); 

     }else{ 
     rs.close(); 
     pst.close(); 
     } 
    } catch (SQLException e) { 
     JOptionPane.showMessageDialog(null, e.getMessage()); 
    } catch (ParseException ex) { 
     Logger.getLogger(Benutzer.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

I've пытался найти свой ответ здесь и на StackOverflow из Бразилии, но не нашел.

С помощью этого метода я пытался обновить данные, которые я выбрал. Ни один из двух способов не работал.

private void bearbeitenActionPerformed(java.awt.event.ActionEvent evt) {           
    try{ 
     String sql = "UPDATE TBL_TEILNEHMER SET NAME=?, VORNAME=?, GEBURT=?, MAIL=?, TELEFON=?, RE=?, DC=?, EMEA=?, ASSETID=?, MODEL=?, HERSTELLER=?, " 
       + "STRASSE=?, NUMMERS=?, STADT=?, PRIVATNUMMER=?, PRIVATMAIL=?, HANDY=?, WHATS=?, SKYPE=? WHERE WIW='"+wiwText.getText()+"'"; 
     pst = conn.prepareStatement(sql); 
     pst.setString(1, nameText.getText()); 
     pst.setString(2, vornameText.getText()); 
     pst.setString(3, geburtChooser.getDate().toString()); 
     pst.setString(4, mailText.getText()); 
     pst.setString(5, telText.getText()); 
     pst.setString(6, reText.getText()); 
     pst.setString(7, dcText.getText()); 
     pst.setString(8, emeaText.getText()); 
     pst.setString(9, assetText.getText()); 
     pst.setString(10, modellCombo.getSelectedItem().toString()); 
     pst.setString(11, herstellerText.getText()); 
     pst.setString(12, strasseText.getText()); 
     pst.setString(13, nummerText.getText()); 
     pst.setString(14, stadtText.getText()); 
     pst.setString(15, privatnummerText.getText()); 
     pst.setString(16, privatmailText.getText()); 
     pst.setString(17, handyText.getText()); 
     pst.setString(18, whatsCombo.getSelectedItem().toString()); 
     pst.setString(19, skypeText.getText()); 
     pst.executeUpdate(); 

     JOptionPane.showMessageDialog(null, "Benutzerdaten wurden bearbeitet."); 
    }catch(SQLException e){ 
     JOptionPane.showMessageDialog(null, e.getMessage()); 
    } 
}      

Помогло ли мне кто-нибудь?

Моя проблема в основном я не могу преобразовать формат из MySQL в формат DateChooser хотя I've уже изменил формат в DateChooser для YYYY.MM.DD ...

I'm делать что-то действительно неправильно. Я пробовал много способов, и ничего не получилось. Также попытался изменить DateFormat в MySQL ... ничего не достиг.

СПАСИБО!

+0

См. SimpleDateFormat (http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) – trooper

+0

Не изменяйте формат даты в редакторе - это должно быть в определенном формате к языку пользователя. Вместо этого конвертируйте дату в формат, который вы ожидаете, затем установите это в базе данных. Аналогичным образом, конвертируйте дату в конкретную локаль, когда вы идете ее отображать. – trooper

+0

'String dateString = new SimpleDateFormat (" dd/MM/yyyy "). Format (dateObj); pst.setString (3, dateString) '.. пример. Почти 100% уверены, что этот вопрос является дубликатом. ;) – trooper

ответ

0

Я нашел решение!

pst.setString(4,((JTextField)geburtChooser.getDateEditor().getUiComponent()).getText()); 

Теперь это работает!