Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字节[]转换为日期_Java_Mysql_Date - Fatal编程技术网

Java 如何将字节[]转换为日期

Java 如何将字节[]转换为日期,java,mysql,date,Java,Mysql,Date,我正在使用mysql和java Jtable 在一种情况下,我只能从JTable中获取表示日期的字节[] 我找不到将字节[]转换回日期的方法 我构建此代码是为了模拟问题: public demoJFrame1() { try { setSize(new Dimension(300, 300)); String select = "SELECT validity_start_date FROM `Table` "; Connection

我正在使用mysql和java Jtable

在一种情况下,我只能从JTable中获取表示日期的字节[]

我找不到将字节[]转换回日期的方法

我构建此代码是为了模拟问题:

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);
}

如果我只能访问字节[]byteArr,如何将其转换为日期?

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

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

或者您可以使用我推荐的jodatime库…

Shan,尝试了您的解决方案,但它给了我一个错误。 请参阅,
Arrays.toString(byteArr)
的转换返回int值而不是chars。这就是对我有效的解决方案:

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

字符串s=Arrays.toString(byteArray);然后将“s”转换为日期。。。我推荐jodatime库。或者你可以使用Calendar classI,我不明白为什么你不能使用JDBC获取日期。Does
rs.getDate(1)失败?你知道为什么吗?嘿,谢谢你的回答,我不能使用getDate函数的原因是因为我在
javax.swing.table.DefaultTableCellRenderer
上覆盖了函数
组件GetTableCellRenderComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int rowIndex,int vColIndex)
,这只给出对象值变量,而不是结果集本身。