我有一个已转换为Date并传递到Java String服务器的Socket。此值的一个示例是06:19:18p.m. 13/01/2011

Socket服务器中,我试图先将其转换回Date值,然后再将其写入SQL数据库表,但是转换后的值是NULL。我也尝试过将值作为原始的String写入SQL数据库,但是除非其中没有冒号,句号或正斜杠字符,否则它不会写入。

有什么办法可以解决这个问题?很抱歉,我无法查看或发布堆栈跟踪,因为我对运行Jar文件的服务器没有管理员访问权限。

我转换String的代码是:

Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ssa dd/MM/yyyy");
try {
    date = sdf.parse(timestamp);
}
catch (ParseException e) {
    e.printStackTrace();
}

最佳答案

我不确定为什么无法正确解析,但是您对此却全都错了。不要将String保存在数据库中,而应将列的类型设置为TIMESTAMP或DATE。然后,您可以使用JDBC中的getDate()来获取日期对象。

09-30 16:55
查看更多