2012-04-24 4 views
1

Как преобразовать дату String в форме 24/04/2012 в переменную даты в формате 24-Apr-12, которая позже может быть передана в мою базу данных Oracle.Преобразование строки date date

Я попытался это, но он говорит, что дата строки неразборчивая:

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

Поскольку это не было сказано раньше ... смотреть в Joda-Time, если вы собираетесь обработки дат в Java. API намного, намного чище, чем исходные пакеты Date. – pcalcao

ответ

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

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); 
0
SimpleDateFormat sdf= new SimpleDateFormat("dd-MM-yy"); 
DateTime newDate = sdf.format(date); 
0

Попробуйте DateFormat format = new SimpleDateFormat("dd/MM/yyyy")

0

Почему бы вам не попробовать использовать java.sql.Date.

Например:

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

Таким образом, вы можете просто дать общий объект SQL для даты.

0

Класс Date для Java довольно сложно использовать во многих случаях. Я рекомендую использовать гораздо лучше 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); 
Смежные вопросы