我有这个代码块,其中dateFormat.format的参数将永远是一个字符串,这就是为什么我这样做.toString()在这里.我收到错误“无法格式化给定的对象作为一个日期”.
有没有办法做到这一点?请注意,字符串来自数据库,我使用新的Date()作为示例.
SimpleDateFormat dateFormat = new SimpleDateFormat("MMMMM dd,yyyy"); String sCertDate = dateFormat.format(new Date().toString());
解决方法
DateFormat#format接受日期,而不是字符串.
使用
String sCertDate = dateFormat.format(new Date());
如果您有一个来自数据库的字符串是特定的格式,并且要转换为日期,则应使用parse方法.
@Sonesh – 让我们假设你在数据库中有一个字符串,恰好代表一个Date(可能最好将对象存储在数据库中作为日期),那么你首先将它解析成你想要的格式,然后将其格式化到你想要的字符串格式.
// Assumes your date is stored in db with format 08/01/2011 SimpleDateFormat dateFormatOfStringInDB = new SimpleDateFormat("MM/dd/yyyy"); Date d1 = dateFormatOfStringInDB.parse(yourDBString); SimpleDateFormat dateFormatYouWant = new SimpleDateFormat("MMMMM dd,yyyy"); String sCertDate = dateFormatYouWant.format(d1);