LoginSignup
1
2

Android - DateFormatメモ

Last updated at Posted at 2015-09-08

経緯

  • よく使用するが、ややこしいのでメモ

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

参考資料

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2