5
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格式输出日期的方法。需要日期格式的输出而不是字符串,以便将输出存储datetime在 mysql db 的字段中

4

5 回答 5

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 中(列类型:日期时间)。

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

于 2012-12-31T12:54:41.460 回答
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));
于 2012-12-31T12:27:09.490 回答
1

不明白为什么在格式字符串中使用单引号('),您还需要 catch 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);
于 2012-12-31T12:34:48.720 回答
0
SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss");
System.out.println("date in controller"+ df.format(d));
于 2012-12-31T12:29:30.810 回答
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) );
于 2012-12-31T12:34:12.747 回答