我需要从数据库中获取日期并将其转换为实用日期...
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
。
答案 0 :(得分: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);
来源:
答案 1 :(得分:1)
只需使用ResultSet.getDate
,它会返回java.sql.Date
,其范围为java.util.Date
,因此您可以在需要java.util.Date
的地方使用它。
对于ParseException:DATE列的ResultSet.getString以yyyy-MM-dd
格式返回日期,你应该用这种格式解析它。
答案 2 :(得分:1)
在数据库中存储为yyyy / MM / dd(例如2013/11/28),我需要在应用程序中将其用作dd / MM / yyyy(例如2013年11月28日)
然后你解析字符串的第一个格式化程序应该是yyyy/MM/dd
,然后将日期对象格式化为字符串应该是dd/MM/yyyy
!
此外,有适当的数据类型[DATE,DATETIME等]在DB表中存储日期,不要使用字符串[CHAR,VARCHAR]。