如何从String获取Date对象

时间:2012-12-31 12:23:50

标签: java date datetime simpledateformat

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字段中

5 个答案:

答案 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) );