2013-03-08 156 views
0

我想以yyyy-mm-dd的格式存储今天的日期。在存储之前,我已经取得了今天的日期,格式化并再次解析格式化的字符串。它以不同于我想要的格式给出输出日期。我如何获取日期,格式化为'yyyy-mm-dd' 并再次将其转换为日期,并希望输出的格式为'yyyy-mm-dd'。请找到下面的代码并告诉我我在哪里错日期格式解析java

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
java.util.Date date = new java.util.Date(); 
java.util.Date date1; 
String datestring=dateFormat.format(date); 

try {   
    date1=dateFormat.parse(datestring); 
    System.out.print(date1); 
} catch (ParseException ex) { 
    Logger.getLogger(accordcclass.class.getName()).log(Level.SEVERE, null, ex); 
} 

上面的代码我得到的输出是 周四三月07 00:00:00 GMT 2013年,但我想要的输出作为2013年1月7日

回答

5

不要使用Date要打印的对象,请直接使用您的变量datestring。使用Date将调用toString,将使用Locale进行格式化。

编辑:添加,如果你想存储你的Date变量格式,它不会这样工作。 A Date不包含格式,它只是表示时间。如果您要在GUI,控制台或其他任何位置显示它,则需要指定一种格式,如果您希望它与当前的格式不同。

+0

我想输出日期类型和首选格式,因为我需要将日期存储在分贝。直接使用日期字符串会给我字符串数据类型的值,这不是我的首选数据类型。 – crazyvi 2013-03-08 14:29:15

+0

@crazyvi,'java.util.Date'没有首选格式。这是1970年1月1日以来的内部表示,以毫秒为单位。您能向我们展示写入数据库的代码吗? – vikingsteve 2013-03-08 14:29:44

+0

@crazyvi如果您将数据库中的日期存储到“字符串”字段中,那么在创建插入或更新语句时,请按照您的示例中那样格式化日期。如果该字段是“日期”或“时间戳”,则不需要格式化该数据库,数据库将正确保存该值。您只需格式化即可“显示”编辑中提及的日期。 – 2013-03-08 14:33:29

0

您正在使用DateFormat进行格式化和重新分析。

你不需要重新解析。只需使用DateFormat格式即可。

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    java.util.Date date = new java.util.Date(); 
    String datestring=dateFormat.format(date); 
    System.out.println(datestring); 
+0

我的数据库有一个数据数据类型的字段。我无法将日期字符串插入到该字段中。所以我需要再次将它转换为日期dataype。我该怎么做? – crazyvi 2013-03-08 15:00:13

+0

您不需要转换回日期 - 您已有日期。但Date仅包含一个时间(作为一个长整数,表示自基准时间以来的毫秒数)。日期不包含任何格式化的字符串 - 即使您通过解析格式化的字符串来创建它。如果您同时需要数据库的日期和输出的格式化字符串,则需要两个不同的对象。 – 2013-03-08 15:15:28

+0

如果我dint格式日期,当我尝试插入一个日期插入到查询字符串在java中,它说,语法错误:遇到“第3行”,第72列。 – crazyvi 2013-03-08 16:20:50

5

我有同样的问题,这是我做的:

DateFormat inputDateFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); 
DateFormat outputDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
System.out.println(outputDateFormat.format(inputDateFormat.parse("09-SEP-2013 10:00"))); 

这样,我可以分析在数据库兼容的格式原来的格式和输出它的日期。

有人使用PreparedStatement的可能性,因为之前有人提到过,但我不想。

+0

它可以帮助我很多...谢谢.. – ashokramcse 2014-01-04 08:55:52