2010-12-11 4 views
3

У меня есть строки, как и в моем strings.xml:как получить DateFormat капитализировать месяц и день

<string name="day_format">EEEE</string> 
<string name="date_format">dd. MMMM</string> 
<string name="date_format_us">MMMM dd</string> 

И я использую их, как это в коде:

private void reinit() { 
    mDayFormat = getString(R.string.day_format); 
    if (!DateFormat.is24HourFormat(this)) 
    { 
    mDateFormat = getString(R.string.date_format_us); 
    } 
    else { 
     mDateFormat = getString(R.string.date_format); 
    } 
    mTimeFormat = is24HourMode(this) ? FORMAT_24_HOURS : FORMAT_12_HOURS; 
    mCalendar = Calendar.getInstance(); 
} 

Но отображает день и месяц в нижнем регистре, и я хочу, чтобы он использовал оба значения. Как я могу это достичь?

ответ

1

Я установил его так:

 final CharSequence date = DateFormat.format(mDateFormat, mCalendar); 
    final CharSequence day = DateFormat.format(mDayFormat, mCalendar); 
    String time = (String) DateFormat.format(mTimeFormat, mCalendar); 
    RemoteViews views = new RemoteViews(getPackageName(), R.layout.clock2by2); 
    String days = new String(day.toString().substring(0,1).toUpperCase() + day.toString().substring(1)); 
    String dates = new String(date.toString().substring(0,1).toUpperCase() + date.toString().substring(1)); 

    views.setTextViewText(R.id.Day, days); 
    views.setTextViewText(R.id.Date, dates); 
    views.setImageViewBitmap(R.id.TimeView, buildUpdate(time)); 
5

Вы можете использовать WordUtils.capitalize(..) из commons-lang (на результирующую строку)

(это в случае, если вы хотите извлечь выгоду - то есть верхний регистр только первую букву В противном случае вы можете simpyl использовать .toUpperCase().)

Update: Поскольку, похоже, это android, вы можете открыть источники WordUtils и скопировать реализацию оттуда, а не получать всю библиотеку.

+0

+1, но я не думаю, что стоит только включить в баночку достояния в Android приложения только из одной функции. toUpperCase() должно быть хорошо; даже если вы просто хотите, чтобы первая буква была заглавной, просто используйте вспомогательный метод, если вам не нужно ничего другого из сообщества. –

+2

Я пропустил там андроид. («R» - единственное, что намекает в этом направлении) – Bozho