2015-03-04 4 views
1

У меня есть строка даты под названием allianceStartDate, которая имеет значениеСложность анализ строки с SimpleDateFormat

«1/7/2010»

Я пытаюсь преобразовать эту строку даты в UTIL Объект даты. Код, который я попробовал это следующим образом:

Date d = new SimpleDateFormat("dd/mm/yyyy").parse(allianceStartDate); 

Однако результат этой операции:

Пт 1 января 00:07:00 GMT 2010

желаемого результата является объектом Date в формате: «01/07/2010».

Благодарим за предоставленную помощь.

+0

Вместо использования 'Date.parse (String)' use 'Date.format (String)'. Также, как сказано ниже, используйте 'ММ' для' Месяца'. – CoderMusgrove

+0

Date.format позволяет передавать объект Date в качестве параметра. – LiamWilson94

ответ

2

Это должно быть "dd/MM/yyyy" не "dd/mm/yyyy", мы используем mm для minutes не Month в Java. Вы должны использовать MM в течение месяца.

Подробнее о JavaSimleDateFormat.

+0

Дата, которая возвращается, все еще находится в неправильном формате ... Я бы хотел, чтобы она отображалась как «01/07/2010», например. Мне не нужна отметка времени или название месяца или дня недели. – LiamWilson94

+0

@ LiamWilson94 Вам также нужно отформатировать формат печати. например: 'DateFormat df = new SimpleDateFormat (" dd/mm/yyyy "); Дата d = df.parse ("01/07/2010"); System.out.println (df.format (d)); ' –

+0

Я думал, что после синтаксического анализа SImpleDateFormat объект Date теперь должен быть в правильном формате? – LiamWilson94

1

После разбора исходного текста, чтобы получить объект Date, вам нужно будет отформатировать его также для форматирования даты, чтобы отобразить его как форматированный текст. Вот пример:

SimpleDateFormat SIMPLE_DATE_FORMATTER = new SimpleDateFormat("dd/MM/yyyy"); 

public String toSimpleDateFormat(Date d) { 
    return SIMPLE_DATE_FORMATER.format(d); 
} 
+0

Спасибо, это объясняет трудность, с которой я столкнулся. Я подумал, что после первоначального анализа даты, когда она будет в нужном формате. – LiamWilson94

Смежные вопросы