2010-08-05 4 views
1

HI,String to Date в Java

Я преобразовываю формат String в Date. Но он возвращает неверные даты. например,

String startDate = "08-05-2010"; // (MM/dd/yyyy) 

Я хочу, чтобы преобразовать это в "Date" объект, как это, 05-Июль-10

Как сделать это? Я пробовал вот так

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy"); 
scal1.setTime(dateFormat.parse((startDate))); 

но я получаю «Непревзойденную дату:».

ответ

3

Если вы хотите, чтобы преобразовать строку даты из одного формата в другой формат, вы можете использовать формат() и синтаксический() методы SimpleDateFormat класса

Прежде всего, необходимо разобрать строку даты объект с помощью установки шаблона исходного метода синтаксического анализа(), а затем форматировать объект даты с помощью установки целевого шаблона метода форматирования():

SimpleDateFormat sourceFormat = new SimpleDateFormat("MM-dd-yyyy"); 
Date sourceFormatDate = sourceFormat.parse("08-05-2010"); 
SimpleDateFormat destFormat = new SimpleDateFormat("dd-MMM-yy"); 
String destFormatDateString = destFormat.format(sourceFormatDate); 
System.out.println(destFormatDateString); // 05-Aug-10 
2

Если вы ничего не вышли, похоже, что вы пытаетесь разобрать его с неправильным форматом, то есть у вас есть mm-dd-yyyy, и вы пытаетесь разобрать его в формате dd- MMM-YY. Попробуйте использовать отдельный формат даты для того, что вы анализируете от того, что вы кодируете.

1
SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”); 
String strDate = “2007-12-25″; 
Date date = null; 
try { 

    date = format.parse(strDate); 

} catch (ParseException ex) { 

    ex.printStackTrace(); 

} 
0

формат dd-MMM-yy используется для разбора строка является неправильной; формат должен быть dd-MM-yyyy.

String startDate = "08-05-2010"; 
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
Date date = dateFormat.parse((startDate)); 

Обратите внимание, что Date объектов сам по себе не имеет формата: а Date объекты просто представляют собой значение даты и времени, точно так же как int просто номер, и не имеет какую-либо присущую информации о форматировании. Если вы хотите отобразить Date в определенном формате, вам нужно будет снова использовать объект DateFormat для его форматирования:

DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy"); 
System.out.println(dateFormat.format(date)); 
// output: 08-May-10