2

こんにちは、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"));

しかし、私は illegalArgumentException を取得しています。助けてください!

4

4 に答える 4

4

postedformat.parse()を返し、コンストラクターDateはありません。Date(Date)

おそらく への呼び出しを削除するので、あなたはそれで十分new Dateだと言いますDate newDate = poste....

于 2010-07-06T08:30:20.330 に答える
3

コード フラグメントがコンパイルされません。このわずかな変更により、正常にコンパイルおよび解析されます。

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);
}

これは、Mac OS X で Java 6 を使用しています。

于 2010-07-06T08:33:11.810 に答える
1

引数としてjava.util.Date()a を取るコンストラクターはありません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
于 2010-07-06T08:34:20.493 に答える
1

javadoc の例は、エスケープされていないコンマを示していますが、US ロケール用です。したがって、(アーロンが提案したように)コンマをエスケープしてみるか、他のコンストラクターを使用してロケールを設定してください。

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

もう 1 つの問題は、タイムゾーン ('CST') である可能性があります。これは一方では非推奨であり、他方ではあいまいです (の javadoc に従ってjava.util.TimeZone)。timezone 属性なしで機能するかどうかをテストします (形式文字列と値の両方で)。

于 2010-07-06T08:41:55.003 に答える