0

我正在尝试将“05/30/2012”之类的字符串转换为与“05/30/2012”相同的日期,并且我正在使用这些代码。

DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");

Date d1=formatter.parse("05/30/2012");

System.out.println(d1);

但是这些代码的编译结果是: "Wed May 30 00:00:00 EEST 2012" 我需要"05/30/2012"

注意:我正在尝试将字符串转换为日期。我在数据库中有一个日期列。我不想改变它的格式。我只想在我的数据库中使用 05/30/2012 但作为日期类而不是字符串。parse() 方法正在将我的日期更改为另一种格式,我想保留它的格式

我已经解决了。

java.sql.Date dd = new java.sql.Date(formatter.parse("05/30/2012").getTime());
System.out.println(dd);

现在它的结果是:05/30/2012

4

6 回答 6

3

然后你需要使用format()方法

顺便说一句,如果您已经格式化了字符串,那么这里的转换点是什么?

如果你只是说System.out.println(dateinstance);那么它将调用toString()具有固定格式的 Date 类的方法,

因此,如果您只想将 String 转换为 Date,那么您可以使用parse()方法来完成,

如果您想要从日期到字符串的格式化转换,那么您需要使用format()方法

于 2012-05-14T11:19:00.003 回答
2

尝试:System.out.println(formatter.format(d1));

于 2012-05-14T11:18:18.757 回答
1

就像解析日期时需要指定格式一样,打印时也需要指定格式,否则会得到您所看到的默认格式。

尝试:

System.out.println(formatter.format(d1))

于 2012-05-14T11:18:52.067 回答
1
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date d1=formatter.parse("05/30/2012");
String out = formatter.format(date);
System.out.println(out);

该方法将从具有给定模式的 Stringparse构建 a ,但您只需调用 a 。DateSystem.out.println(d1); Date.toString()

要使用自定义格式打印Date,您应该使用SimpleDateFormatter.format它将根据需要返回字符串

于 2012-05-14T11:19:41.613 回答
0

尝试这个:

System.out.println(formatter.format(d1));
于 2012-05-14T11:19:02.097 回答
0

您的代码没有任何问题。解析日期,并在System.out.println()调用中使用默认实现Date.toString()注意:日期不知道用于解析的格式

要“修复”它,即做你想做的,写

System.out.println(formatter.format(d1));

反而。

于 2012-05-14T11:19:54.777 回答