1

如何将 24/04/2012 形式的字符串日期转换为 24-Apr-12 格式的日期变量,以后可以将其传递到我的 Oracle 数据库中。

我试过这个,但它说字符串日期是不可解析的:

DateFormat format = new SimpleDateFormat("dd-MMM-yy");
Date newDate = (Date) format.parse(date);
4

7 回答 7

4

我认为您对解析和格式化感到困惑,请尝试以下操作:

String old_date = "24/04/2012";

DateFormat old_format = new SimpleDateFormat("dd/MM/yyyy");
Date newDate = (Date) old_format.parse(old_date);

DateFormat new_format = new SimpleDateFormat("dd-MMM-yy");
String date = new_format.format(newDate);

System.out.println(date);
于 2012-04-24T14:45:49.270 回答
1

您的日期格式应为“dd/MM/yyyy”

于 2012-04-24T14:44:04.190 回答
1

您正在向后执行此操作:

DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date newDate = format.parse(date);

DateFormat formatOutput = new SimpleDateFormat("dd-MMM-yyyy");
String output = formatOutput.format(newDate);

但是,如果您正在做的是将日期传递给 Oracle,那么您真的应该使用PreparedStatement

于 2012-04-24T14:46:33.447 回答
0
SimpleDateFormat sdf= new SimpleDateFormat("dd-MM-yy");
DateTime  newDate = sdf.format(date);
于 2012-04-24T14:46:01.653 回答
0

尝试DateFormat format = new SimpleDateFormat("dd/MM/yyyy")

于 2012-04-24T14:46:34.683 回答
0

为什么不尝试使用 java.sql.Date。

例如:

Date newDate = new java.sql.Date(date.getTime());

所以你可以只为日期提供一个通用的 sql 对象。

于 2012-04-24T14:50:33.487 回答
0

Java 的 Date 类在很多情况下都很难使用。我建议使用更好的Joda Time课程:

DateTimeFormatter oldFormat = DateTimeFormat.forPattern("dd/mm/yyyy");
DateTimeFormatter newFormat = DateTimeFormat.forPattern("dd-MMM-yy");
DateTime dateTime = oldFormat.parseDateTime("24/04/2012");
String newDate = newFormat.print(dateTime);
于 2012-04-24T14:51:03.027 回答