在JAVA中将字符串转换为日期问题(日期解析)

时间:2012-05-14 11:15:00

标签: java datetime date-format simpledateformat

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

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

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

System.out.println(d1);

但这些代码编译结果是: “5月30日星期三00:00:00 EEST 2012” 我需要“05/30/2012”

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

我已经解决了。

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

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

6 个答案:

答案 0 :(得分:3)

您需要使用format()方法

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

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

因此,如果您只想从String转换为Date,那么您可以使用parse()方法进行转换,

如果您想要从Date更改为String,那么您需要使用format()方法

答案 1 :(得分:2)

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

答案 2 :(得分:1)

正如您在解析日期时需要指定格式一样,您还需要在打印时指定格式,否则您将获得您所看到的默认格式。

尝试:

的System.out.println(formatter.format(D1))

答案 3 :(得分:1)

DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date d1=formatter.parse("05/30/2012");
String out = formatter.format(date);
System.out.println(out);

parse方法将使用给定模式从字符串构建Date,但您的System.out.println(d1); 只会调用Date.toString()

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

答案 4 :(得分:0)

试试这个:

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

答案 5 :(得分:0)

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

要“修复”它,即按照自己的意愿行事,写下

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

代替。