日期格式图片在转换整个输入字符串之前结束

时间:2012-10-04 09:57:54

标签: java oracle date time

  

可能重复:
  ORA-01830: date format picture ends before converting entire input string

我通过以下方式获取系统当前日期和时间:

String months[] = {"Jan", "Feb", "Mar", "Apr","May", "Jun", "Jul", "Aug","Sep", "Oct",     "Nov", "Dec"};
Calendar cal = new GregorianCalendar();
String month = (months[cal.get(Calendar.MONTH)]);
int year = cal.get(Calendar.YEAR);
int day = cal.get(Calendar.DAY_OF_MONTH);

int second = cal.get(Calendar.SECOND);
int minute = cal.get(Calendar.MINUTE);
int hour = cal.get(Calendar.HOUR);

String date= day+"/"+month+"/"+year;
String time=hour+":"+minute+":"+second;

ps.setString(14, date+" "+time);

但是,现在当我尝试使用如上所述的预准备语句在表格中插入日期和时间时。

出现以下错误:

  

日期格式图片在转换整个输入字符串之前结束

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  1. 如果您的列具有用于存储日期和时间的类型,请尝试传递到PreparedStatement日期而不是String
  2. 如果您只想保存创建或更新时间戳,使用触发器或默认列值使用DB更容易且更不容易出错
  3. 要将日期格式化为字符串,最好使用SimpleDateFormat或类似方法。
  4. 如果要传递要由Oracle解析的字符串,您应该关心Oracle和您的应用程序中的区域设置,或者您可以修改脚本以包含格式:例如:使用与to_date(:paramString, 'YOUR_DATE_FORMAT')
  5. 类似的somethig