我有一个已转换为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()来获取日期对象。