我需要从数据库中获取日期并将其转换为实用日期...
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dob = rst.getString("dob");
java.util.Date DateTemp = new java.sql.Date(formatter.parse(dob).getTime());
但它会抛出一个异常,上面写着unparseable format
.
我需要从数据库中获取日期并将其转换为实用日期...
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dob = rst.getString("dob");
java.util.Date DateTemp = new java.sql.Date(formatter.parse(dob).getTime());
但它会抛出一个异常,上面写着unparseable format
.
只是以简单的方式回答您的问题。您的dob
值不是正确的格式。不起作用,formatter.parse(dob)
因为它无法解析(或尝试提取数据并将其更改为适当的格式)。
现在更改格式(从 DB 格式到应用程序格式):
final String OLD_FORMAT = "yyyy/MM/dd";
final String NEW_FORMAT = "dd/MM/yyyy";
String oldDateString = rst.getString("dob").replaceAll("-","/");//you to need to replace all the all dashes with slashes
String newDateString;
SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
Date d = sdf.parse(oldDateString);
sdf.applyPattern(NEW_FORMAT);
newDateString = sdf.format(d);
资源:
只需使用ResultSet.getDate
它,它会返回java.sql.Date
哪些扩展java.util.Date
,以便您可以在需要的地方使用它java.util.Date
。
至于 ParseException: ResultSet.getString for DATE 列以yyyy-MM-dd
格式返回日期,您应该已经用这种格式对其进行了解析。
在数据库中存储为 yyyy/MM/dd(例如 2013/11/28),我需要在应用程序中使用它作为 dd/MM/yyyy(例如 28/11/2013)
那么你的第一个格式化程序在将字符串解析为日期时应该是yyyy/MM/dd
,然后将日期对象格式化为字符串应该是dd/MM/yyyy
!
此外,有适当的数据类型[DATE,DATETIME 等] 将日期存储在 DB 表中,不要使用字符串 [CHAR,VARCHAR]。