日期格式解析java
我想以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日
不要使用Date
要打印的对象,请直接使用您的变量datestring
。使用Date
将调用toString
,将使用Locale
进行格式化。
编辑:添加,如果你想存储你的Date
变量格式,它不会这样工作。 A Date
不包含格式,它只是表示时间。如果您要在GUI,控制台或其他任何位置显示它,则需要指定一种格式,如果您希望它与当前的格式不同。
您正在使用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);
我的数据库有一个数据数据类型的字段。我无法将日期字符串插入到该字段中。所以我需要再次将它转换为日期dataype。我该怎么做? – crazyvi 2013-03-08 15:00:13
您不需要转换回日期 - 您已有日期。但Date仅包含一个时间(作为一个长整数,表示自基准时间以来的毫秒数)。日期不包含任何格式化的字符串 - 即使您通过解析格式化的字符串来创建它。如果您同时需要数据库的日期和输出的格式化字符串,则需要两个不同的对象。 – 2013-03-08 15:15:28
如果我dint格式日期,当我尝试插入一个日期插入到查询字符串在java中,它说,语法错误:遇到“第3行”,第72列。 – crazyvi 2013-03-08 16:20:50
我有同样的问题,这是我做的:
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的可能性,因为之前有人提到过,但我不想。
它可以帮助我很多...谢谢.. – ashokramcse 2014-01-04 08:55:52
我想输出日期类型和首选格式,因为我需要将日期存储在分贝。直接使用日期字符串会给我字符串数据类型的值,这不是我的首选数据类型。 – crazyvi 2013-03-08 14:29:15
@crazyvi,'java.util.Date'没有首选格式。这是1970年1月1日以来的内部表示,以毫秒为单位。您能向我们展示写入数据库的代码吗? – vikingsteve 2013-03-08 14:29:44
@crazyvi如果您将数据库中的日期存储到“字符串”字段中,那么在创建插入或更新语句时,请按照您的示例中那样格式化日期。如果该字段是“日期”或“时间戳”,则不需要格式化该数据库,数据库将正确保存该值。您只需格式化即可“显示”编辑中提及的日期。 – 2013-03-08 14:33:29