1

次の形式の時間の文字列があります。

2016-01-07T08:00:00+00:00

次の方法を使用して文字列を解析しようとすると。

public static DateTime getDateTimeObject(String dateTime) {
        //DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(PATTERN);
        //DateTime dateTimeObj = dateTimeFormatter.parseDateTime(dateTime);
        Logger.d(dateTime);
        DateTime dateTimeObj = null;
        try {
            dateTimeObj = ISODateTimeFormat.dateTime().parseDateTime(dateTime);
            return dateTimeObj;
        } catch (Exception e) {
            Logger.e(e.getMessage());
        }
        return dateTimeObj;
    }

私は常に次の例外を受け取ります。

Invalid format: "2016-01-07T08:00:00+00:00" is malformed at "+00:00"

ISO形式の文字列を解析して有効なDateTimeオブジェクトを取得するにはどうすればよいですか?

4

1 に答える 1

7

あなたの値にはミリ秒のコンポーネントがないため、次のことが必要ですISODateTimeFormat.dateTimeNoMillis()

'T' (yyyy-MM-dd'T'HH:mm:ssZZ) で区切られた、ミリ秒なしの完全な日付と時刻を組み合わせたフォーマッタを返します。

このdateTime()メソッドは、yyyy-MM-dd'T'HH:mm:ss.SSSZZ文字列が準拠していない形式のフォーマッタを返します。

于 2016-01-06T09:49:50.410 に答える