我需要将日期字符串分成几部分,我正在使用
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 平台中。关于如何以另一种方式做到这一点的任何想法?有没有简单的方法来标记模式字符串?还有其他想法吗?