0

Sat, 19 Jan 2013 00:00:00 +0100の形式で日付を読み取る必要があります。
私のフォーマッタは

SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");

データを設定したい場合:

try {
    myObject.setEndDate(format.parse(currentValue));
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

これは、単純なJavaプロジェクトまたはNexusおよびHtcで使用すると完璧に機能しますが、デバッガーにSamsung s3を接続すると、パーサー例外が発生します。

これをすべてのバージョンの Android と携帯電話で動作させたいと考えています。

4

3 に答える 3

0

try catchで単純な日付形式なしで日付を計算することでこれを解決しました。一部の電話で実行するとキャッチにならず、フォーマットはうまく機能し、他の電話ではキャッチになりますが、日付はうまく計算されます。

   if(localName.equals("startDate") && currentValue!=null){

    try {
        myObject.setStartDate(format.parse(currentValue));
    } catch (ParseException e) {
        String  dates [] = currentValue.split(" ");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dates[1]));
        cal.set(Calendar.YEAR, Integer.parseInt(dates[3]));
        cal.set(Calendar.MONTH, StaticDataUtils.months.get(dates[2]));
        String hours [] = dates[4].split(":");
        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hours[0]));
        cal.set(Calendar.MINUTE, Integer.parseInt(hours[1]));
        myObject.setStartDate(cal.getTime());
        e.printStackTrace();
    }
于 2013-03-18T10:50:55.717 に答える
0

キャッチ プリントではcurrentValue、 とLocale.getDefaultLocale()も。ほとんどの場合、ロケールが currentValue の解析を妨げています。

少なくとも、まったく同じパラメーターを使用して PC でコードを試すことができます。

于 2013-03-15T15:04:19.693 に答える
0
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss.SSSZ");

これを試して:

于 2013-03-15T13:25:19.280 に答える