如何将 24/04/2012 形式的字符串日期转换为 24-Apr-12 格式的日期变量,以后可以将其传递到我的 Oracle 数据库中。
我试过这个,但它说字符串日期是不可解析的:
DateFormat format = new SimpleDateFormat("dd-MMM-yy");
Date newDate = (Date) format.parse(date);
我认为您对解析和格式化感到困惑,请尝试以下操作:
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);
您的日期格式应为“dd/MM/yyyy”
您正在向后执行此操作:
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
SimpleDateFormat sdf= new SimpleDateFormat("dd-MM-yy");
DateTime newDate = sdf.format(date);
尝试DateFormat format = new SimpleDateFormat("dd/MM/yyyy")
为什么不尝试使用 java.sql.Date。
例如:
Date newDate = new java.sql.Date(date.getTime());
所以你可以只为日期提供一个通用的 sql 对象。
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);