Java DATE Парсинг - PullRequest
       3

Java DATE Парсинг

4 голосов
/ 09 декабря 2011

У меня глупая проблема с java.util.Date.

У меня есть эта строка кода, но я не понимаю, почему эта дата не разрешима с этим форматом.

public class TestTime {
    public static void main(String[] args) {
        final String DATE_FORMAT = "EEE MMM dd HH:mm:ss zzz yyyy";

        String date = "Sat Dec 31 10:00:00 CET 2011";
        SimpleDateFormat dFormat = new SimpleDateFormat(DATE_FORMAT);

        Date lDate = null;
        try {
            lDate = dFormat.parse(date);
        } catch (ParseException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
}

Ответы [ 3 ]

10 голосов
/ 09 декабря 2011

Если ваша система использует локаль, отличную от английского, вам нужно использовать этот конструктор:

SimpleDateFormat(DATE_FORMAT,Locale.ENGLISH);

Если это не проблема, вы должны отформатировать дату, используя тот же форматер, и сравнить вывод с вашей входной строкой.

5 голосов
/ 09 декабря 2011

Я не вижу в этом ничего плохого. Он выполняется для меня без ошибок и возвращает:

Sat Dec 31 09:00:00 GMT 2011
1 голос
/ 09 декабря 2011

Кажется, что проблема связана с локалью.

Если я установил французскую локаль, шаблон не работает. Если в конструкторе SimpleDateFormat я задаю для Locale значение US, это действительно работает.

SimpleDateFormat dFormat = новый SimpleDateFormat (DATE_FORMAT, Locale.US);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...