DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss");
Date d = (Date)formatter.parse(dateTime);
System.out.println("date in controller "+d);
我得到输出为
日期在控制器Mon Dec 31 16:04:57 IST 2012
请建议以MM/dd/yyyy HH:mm:ss
格式输出日期的方法。
需要输出日期格式而不是字符串,以便将输出存储在mysql db中的datetime
字段中
答案 0 :(得分:2)
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就是混乱的原因。
答案 1 :(得分:1)
您正在使用d
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));
答案 2 :(得分:1)
不要理解为什么单引号(和#39;)在格式字符串中使用,你还需要捕捉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);
答案 3 :(得分:0)
SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss");
System.out.println("date in controller"+ df.format(d));
答案 4 :(得分:0)
尝试使用格式而不是解析。
Date date = new Date();
String DATE_FORMAT = "MM/dd/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
System.out.println("Today is " + sdf.format(date) );