我正在使用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?
答案 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库...