0

日付文字列を分割する必要があり、

public final StringBuffer   format  (Object object, StringBuffer buffer, FieldPosition field)

java.text.DateFormat クラスから。ただし、この関数の実装は非常に遅いため、Android には android.text.format.DateFormat に独自の実装があります。

しかし、私の場合、日付文字列のさまざまな部分 (年、分など) を抽出したいと考えています。ロケールに依存しない必要があるため、SimpleDateFormat とカスタム文字列は使用できません。私は次のようにします:

    Calendar c = ...

    // find out what field to extract
    int field = getField();

    // Create a date string
    Field calendarField = DateFormat.Field.ofCalendarField(field);
    FieldPosition fieldPosition = new FieldPosition(calendarField);
    StringBuffer label = new StringBuffer();
    label = getDateFormat().format(c.getTime(), label, fieldPosition);

    // Find the piece that we are looking for
    int beginIndex = fieldPosition.getBeginIndex();
    int endIndex = fieldPosition.getEndIndex();
    String asString = label.substring(beginIndex, endIndex);

何らかの理由で、FieldPosition 引数を持つ format() オーバーロードが Android プラットフォームに含まれていません。これを別の方法で行う方法のアイデアはありますか? パターン文字列をトークン化する簡単な方法はありますか? 他のアイデアはありますか?

4

1 に答える 1

0

コア ライブラリ (java.*) の一部で正しくない動作や許容できないパフォーマンスが見つかった場合は、ここで再現可能なテスト ケースを使用してバグを報告してください。

http://code.google.com/p/android/issues/entry

于 2010-05-09T16:37:20.380 に答える