Java String to Date, ParseException - PullRequest
       9

Java String to Date, ParseException

0 голосов
/ 13 августа 2011

У меня есть строка с именем DateCompareOld, it has the value "Fri Aug 12 16:08:41 EDT 2011".Я хочу преобразовать это в объект даты.

 SimpleDateFormat dateType =  new SimpleDateFormat("E M dd H:m:s z yyyy");
 Date convertDate = dateType.parse(DateCompareOld);

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

Предложения?

Ответы [ 3 ]

5 голосов
/ 13 августа 2011

Попробуйте этот формат:

EEE MMM dd HH:mm:ss zzz yyyy

Быстрый тест:

public static void main(String[] args) throws Exception {
    DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    System.out.println(df.parse("Fri Aug 12 16:08:41 EDT 2011"));
}

// outputs
Fri Aug 12 15:08:41 CDT 2011

Вывод в CDT, так как я там, но значение верное.

2 голосов
/ 13 августа 2011
DateFormat dateType =  new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
dateType.setLenient(false);
Date convertDate = dateType.parse(DateCompareOld);
0 голосов
/ 13 августа 2011

Обратите внимание, что строка, передаваемая в SimpleDateFormat (), должна быть исправлена ​​на "EEE MMM dd HH: мм: сс z гггг"

Вот код:

import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class DateTest{
public static void main(String []args){
    String DateCompareOld = "Fri Aug 12 16:08:41 EDT 2011";
    SimpleDateFormat dateType =  new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Date convertDate = new Date();
    try{
     convertDate = dateType.parse(DateCompareOld);
    }catch(ParseException pex){
        pex.printStackTrace();
    }
    System.out.println(convertDate.toString());
  }

}
...