JAVA中的datetime将字符串转换为日期问题(日期解析)
我正在尝试将类似于“05/30/2012”的字符串转换为类似于“05/30/2012”的日期,我正在使用这些代码
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
Date d1=formatter.parse("05/30/2012");
System.out.println(d1);
但这些代码编译的结果是: “2012年5月30日星期三00:00:00” 我需要“2012年5月30日”
注意:我正在尝试将字符串转换为日期。我在数据库中有一个日期列。我不想改变它的格式。我只想要2012年5月30日在我的数据库中,但作为日期类而不是字符串。parse()方法正在将我的日期更改为另一种格式,我希望保留其格式
我已经解决了
java.sql.Date dd = new java.sql.Date(formatter.parse("05/30/2012").getTime());
System.out.println(dd);
现在的结果是:2012年5月30日
# 1 楼答案
然后需要使用
format()
方法顺便问一下,如果已经格式化了字符串,那么这里的转换点是什么
如果您只说
System.out.println(dateinstance);
,那么它将调用Date类的toString()
方法,该方法具有固定的格式因此,如果您只想将字符串转换为日期,那么可以使用
parse()
方法进行转换如果您想要从日期到字符串的格式转换,那么您需要使用
format()
方法# 2 楼答案
试试看:
System.out.println(formatter.format(d1));
# 3 楼答案
正如在解析日期时需要指定格式一样,在打印日期时也需要指定格式,否则将获得所看到的默认格式
尝试:
系统。出来println(格式化程序.格式(d1))
# 4 楼答案
parse
方法将根据具有给定模式的字符串构建一个Date
,但是您的System.out.println(d1);
将只调用一个Date.toString()
要使用自定义格式打印
Date
,应使用SimpleDateFormatter.format
返回所需字符串# 5 楼答案
你的代码没有问题。解析日期,并在
System.out.println()
调用中使用Date.toString()
的默认实现注意:日期不知道用于解析的格式要“修复”它,即做你想做的,写
相反
# 6 楼答案
试试这个: