我正在尝试将像“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
答案 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));
代替。