简单日期格式字符串

2022-09-03 09:25:05

我有这个代码块,其中参数将永远是一个,这就是为什么我在这里这样做。我收到错误“无法将给定对象格式化为日期”。dateFormat.formatstring.toString()

有没有办法做到这一点?请注意,字符串来自数据库,我在这里使用新的Date()作为示例。

SimpleDateFormat dateFormat = new SimpleDateFormat("MMMMM dd, yyyy");
String sCertDate = dateFormat.format(new Date().toString());

答案 1

DateFormat#format 接受 Date,而不是字符串。

String sCertDate = dateFormat.format(new Date());

如果您有一个来自数据库的字符串是特定格式,并且您希望转换为日期,则应使用 parse 方法。

@Sonesh - 让我们假设数据库中有一个字符串恰好表示日期(最好将对象存储在数据库中作为日期?),然后您将首先将其转换为所需的格式,然后将其设置为所需的字符串格式。parseformat

// 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);

答案 2

有两种应用:SimpleDateFormat

  • 解析字符串 - 当您有一个表示为字符串的日期,并且您想要获取相应的对象时。然后使用DatedateFormat.parse(string)

  • 格式化日期 - 当您有一个对象并且希望以特定方式格式化它时(通常是为了向用户显示它)。在这种情况下,请使用DatedateFormat.format(date)

这两种方法是相互的 - 一个获取日期并返回字符串,另一个获取字符串并返回日期。

对于您的特定情况,也许您需要 .但请注意,每个“自尊”数据库驱动程序都应该有一个选项来返回而不是某个字符串表示形式。如果您碰巧在数据库中将日期存储为字符串 - 请不要这样做。使用本机日期类型。.parse(..)Date


推荐