Как разобрать дату Строка, содержащая Locale - PullRequest
0 голосов
/ 30 марта 2012

У меня есть строка даты "Сб 28 января 00:00:00 IST 2012", и я пытаюсь разобрать ее, используя DateTimeFormatter из Joda.У меня есть следующий код, не знаю, где, это пошло не так.

DateTimeFormatter dateFmt = DateTimeFormat
            .forPattern("EEE MMM dd HH:mm:SS ZZZ yyyy");
DateTime dateTime = dateFmt.parseDateTime(dateString);

Исключение: java.lang.IllegalArgumentException: Неверный формат: «Сб 28 января 00:00:00 IST 2012»Неправильно на «IST 2012».Пожалуйста, помогите мне пройти через это.Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

IST не распознается часовым поясом API, он может распознавать только один часовой пояс из getAvailableIds()

1 голос
/ 30 марта 2012

Используйте zzz (строчные буквы), а не ZZZ (прописные). От API документы :

 z   time zone              text      Pacific Standard Time; PST
 Z   time zone offset/id    zone      -0800; -08:00; America/Los_Angeles
0 голосов
/ 30 марта 2012

Не знаю почему, но это работает, если я использую SimpleDateFormat вместо DateTimeFormatter.

КОД:

public static void main(String[] args) throws ParseException {
        String FORMAT = "EEE MMM dd HH:mm:SS zzz yyyy";
        String dateString = "Sat Jan 28 00:00:00 IST 2012";
        SimpleDateFormat dateFormat = new SimpleDateFormat(FORMAT);
        Date date = dateFormat.parse(dateString);
        System.out.println(new DateTime(date));
        DateTimeFormatter dateFmt = DateTimeFormat.forPattern(FORMAT);
//      System.out.println(dateFmt.parseLocalDateTime(dateString));
//      System.out.println(dateFmt.parseDateTime(dateString));
        System.out.println(dateFmt.parseLocalTime(dateString));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...