如何将JTextField字符串转换为java.sql.date日期

时间:2015-05-01 14:48:47

标签: sql string date jtextfield

一个经常被问到的问题(对我而言)是:如何从例如转换简单字符串JTextFieldjava.sql.date Date - 通过准备好的声明将一些GUI用户输入作为格式正确的日期插入到表中。

1 个答案:

答案 0 :(得分:0)

我会编写一个新的转换指定类,它有这个选项。

import java.text.SimpleDateFormat;
import java.util.Date;


public class convertText {
    public java.sql.Date formatStringToSQLDate(String strDate) throws Exception{
        Date utilDate = new Date(); //DateFormat
        SimpleDateFormat dfFormat = new SimpleDateFormat("dd.MM.yyyy"); // parse string into a DATE format      
        utilDate = dfFormat.parse(strDate); // convert a util.Date to milliseconds via its getTime() method         
        long time = utilDate.getTime(); // get the long value of java.sql.Date 
        java.sql.Date sqlDate = new java.sql.Date(time);
        return sqlDate;   
    }
}

之后,要像这样使用它。

Connection dp = DriverManager.getConnection("jdbc:ucanaccess://" + Filepath + Filename);
Statement stat = dp.createStatement();
String sql = "INSERT INTO user_table (Name, Birth) VALUES(?, ?)"; //statement as string
PreparedStatement pstmt = dp.prepareStatement(sql);
pstmt.setString(1, textFieldVorname.getText()); //replaces the first '?'
pstmt.setDate(2, Date.formatStringToSQLDate(textFieldGeburtsdatum.getText())); //replaces the second '?'
pstmt.executeUpdate(); //executes the insert-query