如何从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) );