2013年5月11日土曜日

SimpleDateFormat ではなく android.text.format.DateFormat を使おう

SimpleDateFormat のパターン文字列だけをとるコンストラクタを使うと、Locale 指定しろよって Lint さんに怒られます。

android で用意されている DateFormat を使いましょう。

SimpleDateFormat と違って、format() に Calendar インスタンスを渡すことができます(Date インスタンスや inTimeInMillis(long)を渡すこともできます)。
Time Pattern Syntax は SimpleDateFormat とほぼ同じですが H の代わりに k を使うなど違いもあります。
  1. String text = DateFormat.format("yyyy/MM/dd, E, kk:mm:ss", Calendar.getInstance());  
  2. textView.setText(text);  
DateFormat を使うと、デバイスのロケールに応じた表示になります。日本語環境であっても曜日を英語で表示したい場合は SimpleDateFormat を使います。
  1. SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd, E, HH:mm:ss", Locale.ENGLISH);  
  2. String text = sdf.format(Calendar.getInstance().getTime());  
  3. textView.setText(text);  


0 件のコメント:

コメントを投稿