我正在构建一个使用Android Studio中SMS功能的应用程序,而我想做的是显示SMS发送/接收的日期和时间。我正在使用光标从手机中读取短信收件箱数据,并将其显示在正在执行的列表视图中,但显示为“ Thr Jan 01 10:30:01 LHST 1970”,而不是实际发送的日期/通过电话收到。
我尝试使用此处找到的其他方法来格式化它,但是当我尝试运行它时,它们都会使应用程序崩溃。
这是光标读取并显示在列表视图中的SMS收件箱的代码。
Uri uri = Uri.parse("content://sms/");
ContentResolver contentResolver = getContentResolver();
String phoneNumber = "0409579347";
String sms = "address='"+ phoneNumber + "'";
Cursor cursor = contentResolver.query(uri, new String[] {"_id", "body", "date"}, sms, null, null);
System.out.println ( cursor.getCount() );
while(cursor.moveToNext())
{
String strbody = "Command: " + cursor.getString( cursor.getColumnIndex("body")) + "\n";
String date = "\nDate: " + cursor.getString(cursor.getColumnIndex("date")) + "\n";
Date formatted_date = new Date(cursor.getLong(0));
String displayDate = new SimpleDateFormat("dd-mm-yyyy").format(formatted_date);
System.out.println ( strbody );
System.out.print(displayDate);
arrayAdapter.add(strbody + formatted_date);
}
答案 0 :(得分:1)
您可以使用SimpleDateFormat进行尝试。
SimpleDateFormat mdFormat = new SimpleDateFormat("dd-MMM-yyyy");
Date formatted_date = new Date();
String displayDate = mdFormat.format(formatted_date);
System.out.print(displayDate);