-1

我需要从数据库中获取日期并将其转换为实用日期...

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.

4

3 回答 3

3

只是以简单的方式回答您的问题。您的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);

资源:

如何更改 Java 中的日期格式?

于 2013-07-26T13:39:46.893 回答
1

只需使用ResultSet.getDate它,它会返回java.sql.Date哪些扩展java.util.Date,以便您可以在需要的地方使用它java.util.Date

至于 ParseException: ResultSet.getString for DATE 列以yyyy-MM-dd格式返回日期,您应该已经用这种格式对其进行了解析。

于 2013-07-26T13:42:23.687 回答
1

在数据库中存储为 yyyy/MM/dd(例如 2013/11/28),我需要在应用程序中使用它作为 dd/MM/yyyy(例如 28/11/2013)

那么你的第一个格式化程序在将字符串解析为日期时应该是yyyy/MM/dd,然后将日期对象格式化为字符串应该是dd/MM/yyyy

此外,有适当的数据类型[DATE,DATETIME 等] 将日期存储在 DB 表中,不要使用字符串 [CHAR,VARCHAR]。

于 2013-07-26T13:42:51.330 回答