Adroid's DateFormat replacement - missing the format() with FieldPosition

Posted by user331244 on Stack Overflow See other posts from Stack Overflow or by user331244
Published on 2010-05-03T08:45:24Z Indexed on 2010/05/03 8:48 UTC
Read the original article Hit count: 287

Filed under:
|

Hi,

I need to split a date string into pieces and I'm doing it using the

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

from the java.text.DateFormat class. However, the implementation of this function is really slow, hence Android has an own implementation in android.text.format.DateFormat.

BUT, in my case, I want to extract the different pieces of the date string (year, minute and so on). Since I need to be locale independent, I can not use SimpleDateFormat and custom strings. I do it as follows:

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

For some reason, the format() overload with the FieldPosition argument is not included in the android platform. Any ideas of how to do this in another way? Is there any easy way to tokenize the pattern string? Any other ideas?

© Stack Overflow or respective owner

Related posts about dateformat

Related posts about android