Как разобрать строку даты с помощью DateFormat? - PullRequest
4 голосов
/ 21 октября 2011

У меня есть строка даты в следующем формате:

Thu Oct 20 14:39:19 PST 2011

Я хотел бы проанализировать ее, используя DateFormat, чтобы получить объект Date.Я пытаюсь это так:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT);
Date date = df.parse(dateString);

Это дает ParseException ("непарсируемая дата").

Я также пробовал это:

SimpleDateFormat df = new SimpleDateFormat("EEE-MMM-dd HH:mm:ss z yyyy");

с теми же результатами.

Это правильная строка SimpleDateFormat?Есть ли лучший способ разобрать эту дату?

Ответы [ 3 ]

9 голосов
/ 21 октября 2011

Вы уверены, что строке даты действительно присваивается значение Thu Oct 20 14:39:19 PST 2011?Если это не проблема, вы можете попробовать использовать этот код, который работает для меня:

import java.text.SimpleDateFormat;
import java.util.Date;
public class Test{


  public static void main(String args[]){

    String toParse = "Thu Oct 20 14:39:19 PST 2011";

    String format = "EEE MMM dd HH:mm:ss z yyyy";
    SimpleDateFormat formater = new SimpleDateFormat(format);
    try{
      Date parsed = formater.parse(toParse);
    } catch(Exception e){
      System.out.println(e.getMessage());
    }

  }
}
2 голосов
/ 21 октября 2011

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

Это было решено с помощью этого вместо:

SimpleDateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.CANADA);

0 голосов
/ 21 октября 2011

Попробуйте это:

SimpleDateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
...