как создать объект Date из значения String

При выполнении приведенного ниже кода я получаю UNPARSABLE DATE EXCEPTION.

Как я могу это исправить?

   package dateWork;

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class DateCreation {

        /**
         * @param args
         */
        public static void main(String[] args) {

            String startDateString = "2013-03-26";
            DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 
            Date startDate=null;
            String newDateString = null;
            try 
            {
                startDate = df.parse(startDateString);
                newDateString = df.format(startDate);
                System.out.println(startDate);
            } catch (ParseException e) 
            {
                e.printStackTrace();
            }
        }

    }

person Hussain Akhtar Wahid 'Ghouri'    schedule 02.04.2013    source источник
comment
подсказка, что у вас есть 2 формата даты, но только один SimpleDateFormat   -  person Kevin D    schedule 02.04.2013
comment
Попробуйте -: String startDateString = "2013-03-26"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd");   -  person Alya'a Gamal    schedule 02.04.2013


Ответы (4)


Вы использовали неправильный формат даты для месяца, также вы должны использовать тот же разделитель, что и в вашей дате.

Если строка даты имеет формат "2013/01/03"

используйте тот же разделитель / для шаблона "yyyy/MM/dd"

Если ваша строка даты имеет формат "2013-01-03"

используйте тот же разделитель '-' в шаблоне "yyyy-MM-dd"

    DateFormat df = new SimpleDateFormat("yyyy/mm/dd"); 

должно быть

    DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 

Из Документ SimpleDateFormat

ММ ---> месяц в году

мм ---> минут в час

person PermGenError    schedule 02.04.2013

MM вместо mm

- вместо /, т.е. yyyy-MM-dd, поскольку вы используете - в строке даты

person rajesh    schedule 02.04.2013

String startDateString = "2013-03-26";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 

вы используете другой шаблон, чем тот, который вы анализируете.

либо инициализируйте это как DateFormat df = new SimpleDateFormat("yyyy-MM-dd");, либо как String startDateString = "2013/03/26";

также посмотрите эту статью

person Ankit    schedule 02.04.2013

передать строку того же формата в конструкторе SimpleDateFormat ("гггг-мм-дд")

поскольку ваша дата строки "2013-03-26"

если ваша дата "2013/03/26" используйте

SimpleDateFormat("гггг/мм/дд")

person Nirbhay Mishra    schedule 02.04.2013