« Android 時間フォーマット | メイン | Android システムリソース ディバイダー一覧 »

Android 日付フォーマット

Androidでは、ユーザーが日付フォーマットの指定でき、 プログラム側では、これらのフォーマットを参照して画面に出力する必要がある。

日付表示フォーマット

日付表示フォーマットは、Setting - Date & Time - Select date formatにて設定をする。

指定できるフォーマットは、以下の5種類

  • 12-31-2009
  • 31-12-2009
  • Dec 31,2009
  • 31-Dec-2009
  • 2009-12-31

ユーザーにより設定された日付フォーマットは、Settings.System.getStringメソッドの引数に、Settings.System.DATE_FORMATを渡すことで取得可能。

注意点

  • DATE_FORMATは、nullを返す可能性がある。

サンプルコード


	 * 日付のフォーマットを返す。
	 * 
	 * Setting - Date & Time - Select date formatで設定された値を取得する
	 * @param ctx  the application context
	 * @return
	 */
	public static final String getDateFormatPattern(Context ctx){
		final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
        String value = Settings.System.getString(ctx.getContentResolver(), Settings.System.DATE_FORMAT);
        if(value == null) return DEFAULT_DATE_FORMAT;
        return value;
	}

	/**
	 * 日付のSimpleDateFormatを返す。
	 * 
	 * Setting - Date & Time - Select date formatで設定された値をSimpleDateFormatで返す
	 * @param ctx  the application context
	 * @return the {@link java.text.DateFormat} object
	 */
	public static final SimpleDateFormat getDateFormat(Context ctx){
		return new SimpleDateFormat(getDateFormatPattern(ctx));
	}

	/**
	 * 日付 + 時間 形式でのSimpleDateFormatを返す。
	 * 
	 * @param ctx the application context
	 * @return the {@link java.text.DateFormat} object
	 */
	public static final SimpleDateFormat getDateTimeFormat(Context ctx){
		return new SimpleDateFormat(getDateFormatPattern(ctx) + " " + getTimeFormatPattern(ctx));
	}

ブログ内の関連する記事

  1. Android 時間フォーマット

トラックバック

このエントリーのトラックバックURL:
http://www.taosoftware.co.jp/mt/mt-tb.cgi/162

コメント

 どうも。Android1.5から追加されたandroid.text.format.DateFormatを使うと、もう少し幸せになれます。

 多分、内部的にやってる事は同じだと思いますけど。

ほほぉ、情報ありがとうございます。
ただ、HT-03Aだと変更できないし、2009-08-30 ってフォーマットだし、個人的にはスラッシュが好き...

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)