Java 如何将字节[]转换为日期
我正在使用mysql和java Jtable 在一种情况下,我只能从JTable中获取表示日期的字节[] 我找不到将字节[]转换回日期的方法 我构建此代码是为了模拟问题: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
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获取日期。Doesrs.getDate(1)代码>失败?你知道为什么吗?嘿,谢谢你的回答,我不能使用getDate函数的原因是因为我在javax.swing.table.DefaultTableCellRenderer
上覆盖了函数组件GetTableCellRenderComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int rowIndex,int vColIndex)
,这只给出对象值变量,而不是结果集本身。