2012-01-17 12 views
3

私はAndroidプログラミングには新しく、SMSのインテントを使用して受信トレイのすべてのSMSメッセージを取得するためのテストコードを書いていました。私が書いたコードは次のとおりです:アンドロイドのSMSの日付フィールドを取得する方法

Uri uri = Uri.parse("content://sms/inbox"); 
Cursor c = getContentResolver().query(uri, new String[]{"address","person","date","body"}, null, null, null); 
c.moveToFirst(); 
if(c.getCount() > 0){ 
     while(!c.isLast()){ 
      System.out.println(c.getString(c.getColumnIndex("date"))); 
      c.moveToNext(); 
     } 
} 

これは正しいですか? 日付列の値が "1326781012725"のように取得されているのがわかります。 これをYYYY-MM-DDのような判読可能な形式に変換したいのですが、どうすればいいですか?

私はAPIバージョン10を使用しているため、(列のデータ型を返す)api-cursor.getType()は使用できません。

ありがとうございました。

答えて

2

"1326781012725"はタイムスタンプです。このようにタイムスタンプの変換を行うことができます。

final Calendar cal = Calendar.getInstance(); 
cal.setTimeInMillis(System.currentTimeMillis()); 
Date date = cal.getTime(); 
mHour = date.getHours(); 
mMinute = date.getMinutes(); 
+0

ありがとう。しかし、date.getHours()、date.getMinutes()など(およびDateクラスのその他のほとんどのユーティリティメソッド)は廃止されました。 [リンク](http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Date.html)。 –

+0

さて、私はそれを得た。 SimpleDateFormatクラスを使用して、cal.getTime()によって返された日付オブジェクトをフォーマットしました! –

+0

申し訳ありませんが、私はまだstackoverflowで書式のハングアップを持っていない、したがって、私の投稿/コメントが正しくフォーマットされていません。 –

関連する問題