2010-12-11 17 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(); 
} 

しかし、日と月を小文字で表示し、両方を大文字にする必要があります。それをどうすれば実現できますか? :

更新 - (。そうしないとあなたが使用.toUpperCase()をsimpylすることができますつまり、大文字のみ最初の文字を使用すると、大文字にしたいこのケースである)

答えて

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

あなたは

(結果文字列に)commons-langからWordUtils.capitalize(..)を使用することができますこれはアンドロイドだと思われるので、ライブラリ全体を取得するのではなく、WordUtilsのソースを開いてそこから実装をコピーすることができます。

+0

+1を、私はそれがちょうど理由だけで一つの機能のAndroidアプリにコモンズの瓶が含まれるように価値があるとは思いません。 toUpperCase()は問題ありません。最初の文字を大文字にしたい場合でも、コモンから何も必要がない場合はヘルパーメソッドを使用してください。 –

+2

私はそこにアンドロイドを見逃しました。 ( 'R'はその方向を示唆する唯一のものです) – Bozho