SimpleDateFormatter не будет анализировать! - PullRequest
2 голосов
/ 06 июля 2010

Здравствуйте, я пытаюсь использовать SimpleDateFormatter для разбора даты Wed, 30 Jun 2010 15:07:06 CST

Я использую следующий код

public static SimpleDateFormat postedformat = 
    new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
Date newDate = new Date(posteformat.parse("Wed, 30 Jun 2010 15:07:06 CST"));

но я получаю недопустимое исключение ArgumentException. Пожалуйста, помогите!

Ответы [ 4 ]

4 голосов
/ 06 июля 2010

postedformat.parse() возвращает Date, а конструктор Date(Date) отсутствует.

Предположительно, удаление вызова new Date, так что вы говорите, что Date newDate = poste.... будет достаточно

3 голосов
/ 06 июля 2010

Ваш фрагмент кода не компилируется. Эта небольшая модификация успешно компилируется и анализируется:

public static void main(String[] args) throws ParseException {
    SimpleDateFormat postedformat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
    Date newDate = postedformat.parse("Wed, 30 Jun 2010 15:07:06 CST");
    System.out.println("newDate = " + newDate);
}

Используется Java 6 в Mac OS X.

1 голос
/ 06 июля 2010

Примеры javadoc показывают неэкранированную запятую, но для локали США. Так что либо попробуйте избежать запятой (как предложил Аарон), либо используйте другой конструктор и установите Locale:

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

Еще одной проблемой может быть часовой пояс ('CST'), который устарел с одной стороны и неоднозначен с другой (согласно javadoc java.util.TimeZone). Проверьте, работает ли он без атрибута часового пояса (как в формате String, так и в значении).

1 голос
/ 06 июля 2010

Не существует java.util.Date() конструктора, который принимает java.util.Date в качестве аргумента

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

public class DateFormat {
    public static SimpleDateFormat postedformat = 
        new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
    public static void main(String[] args) {
        try {
            Date newDate = postedformat.parse("Wed, 30 Jun 2010 15:07:06 CST");
            System.out.println("Date: " + newDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

Выходы:

Date: Wed Jun 30 22:07:06 BST 2010
...