如何从String获取Date对象

DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss"); Date d = (Date)formatter.parse(dateTime); System.out.println("date in controller "+d); 

我把输出作为

控制日期:2012年12月31日16:04:57 IST 2012

请建议以MM/dd/yyyy HH:mm:ss格式输出日期的方法。 需要以日期格式输出而不是字符串,以便将输出存储在mysql db中的datetime字段中

 Need the output in date format and not as string so as to store the output in datetime field in mysql db 

声明之后

 Date d = (Date)formatter.parse(dateTime); java.sql.Date sqldate = new java.sql.Date(d.getTime()) 

你有一个java.util.Date对象, 你可以将它存储在mysql DB中 (列类型:datetime)。

但是,当您打印d ,它默认为.toString()实现。 我认为你期望像Date @这样的输出但是以用户可读格式打印的toString这就是混乱的原因。

您使用的是Date类的对象,因此调用其toString方法,将输出显示为Mon Dec 31 16:04:57 IST 2012

如果要以SimpleDateFormat指定的格式显示它,请尝试使用:

 DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss"); Date d = (Date)formatter.parse(dateTime); System.out.println("date in controller "+ formatter.format(d)); 

不明白为什么single-qoutes(’)在format-string中使用,你还需要捕获ParseException

 DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); Date d = new Date(); try { d = (Date)formatter.parse("12/31/2012 12:13:14"); } catch(ParseException pex) { System.out.println(pex.getMessage()); } // convert the date into java.sql.Date java.sql.Date sqldate = new java.sql.Date(d.getTime()); // then put it in the database, something like this: //resultSet.updateDate("myDateTimeField", sqldate); 
 SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss"); System.out.println("date in controller"+ df.format(d)); 

尝试使用格式而不是解析。

 Date date = new Date(); String DATE_FORMAT = "MM/dd/yyyy"; SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT); System.out.println("Today is " + sdf.format(date) );