如何将byte []转换为date

时间:2014-02-06 14:53:33

标签: java mysql date

我正在使用mysql和java Jtable

在一种情况下,我只能从JTable得到一个表示日期的字节[。

我找不到将byte []转换回日期的方法。

我构建了这段代码以模拟问题:

public demoJFrame1() {
    try {
        setSize(new Dimension(300, 300));

        String select = "SELECT validity_start_date FROM `Table`  ";
        Connection c = ObtainConnection();

        java.sql.ResultSet rs = c.createStatement().executeQuery(select);

        if (rs.next()){
            Date dt = rs.getDate(1);
            byte[] byteArr = rs.getBytes(1);
        }

        // if i only have access to the byte[] byteArr, how do i convert it to Date variable ????

    } catch (java.sql.SQLException ex) {
        Logger.getLogger(demoJFrame1.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public final Connection ObtainConnection() throws SQLException{
        String DBurl       = "jdbc:mysql://localhost:3306/DBname";
        String DBdriver    = "com.mysql.jdbc.Driver";
        String DBlogin     = "root";
        String DBpassword  = "pass";

        Class.forName(DBdriver);
        return java.sql.DriverManager.getConnection(DBurl, DBlogin, DBpassword);
}

如果我只能访问byte [] byteArr,我该如何将其转换为Date?

2 个答案:

答案 0 :(得分:1)

Shan,试过你的解决方案,但它给了我一个错误。 看,Arrays.toString(byteArr)的转换返回int值而不是chars。所以这是对我有用的解决方案:

String s = new String((byte[])value);
d1 = new SimpleDateFormat("yyyy-MM-dd").parse(s);

答案 1 :(得分:0)

String s = Arrays.toString(byteArr);然后将's'转换为日期......

Date date = new SimpleDateFormat("ddMMyyyy").parse(s);

或者你可以使用我推荐jodatime库...