経緯
- よく使用するが、ややこしいのでメモ
Pattern A
- 現在のロケールに対応する書式(short)
- 特記事項
android.text.format.DateFormat.getDateFormat(context)
は、java.text.DateFormat
を返す。 (android.text.format.DateFormat
ではない)
public class Crime {
private Date mDate;
// ...
/**
* @param c context
* @return formatted date string
*/
public String getDateString(Context c) {
java.text.DateFormat df = android.text.format.DateFormat.getDateFormat(c);
return df.format(mDate);
}
// ...
}
- E.g. あるfragmentから呼ばれた例
mDateButton.setText(mCrime.getDateString(getActivity()));
Pattern B
- 現在のロケールに対応する書式(long)
- 特記事項 Pattern Aと同じ
public class Crime {
private Date mDate;
// ...
/**
* @param c context
* @return formatted date string
*/
public String getDateString(Context c) {
java.text.DateFormat df = android.text.format.DateFormat.getLongDateFormat(c);
return df.format(mDate);
}
// ...
}
- E.g. あるfragmentから呼ばれた例
mDateButton.setText(mCrime.getDateString(getActivity()));
Pattern C
-
書式を指定する
-
どうしても特定の書式でなければならない場合を除き、このパターンは避けるべき
-
特記事項
android.text.format.DateFormat.format(CharSequence inFormat, Date inDate)
は、CharSequence
を返す 。 (String
ではない)
public class Crime {
private Date mDate;
// ...
/**
* @return formatted date string
*/
public String getDateString() {
return ((String)DateFormat.format("EEE, MMM d, ''yy", mDate)).toString();
}
// ...
}
- E.g. あるfragmentから呼ばれた例
mDateButton.setText(mCrime.getDateString());