我正试图从android sdk 2.2中的通话记录中获取通话时间。
long seconds = cursor.getColumnIndex(Calls.DATE);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy HH:mm");
String dateString = formatter.format(new Date(seconds * 1000L));
destinationTime.setText(dateString);
但我收到了错误的结果
01-01-70 05:29
有人能指出我正确的方向,就像我做错了一样。
由于
答案 0 :(得分:2)
while (Cursor_Call_Logs.moveToNext()) {
String callDate = Cursor_Call_Logs.getString(Cursor_Call_Logs.getColumnIndex(android.provider.CallLog.Calls.DATE));
long seconds=Long.parseLong(callDate);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy HH:mm");
String dateString = formatter.format(new Date(seconds));
}
答案 1 :(得分:1)
将答案改为
int secondindex = cursor.getColumnIndex(Calls.DATE);
long seconds=cursor.getLong(secondindex);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy HH:mm");
String dateString = formatter.format(new Date(seconds));
destinationTime.setText(dateString);
首先,您应该使用索引来获取值。指数本身不是价值。其次要使用Date对象的构造函数,你应该将millis作为参数。您通过* 1000L将其转换为秒。 它现在应该可以正常工作。
答案 2 :(得分:0)
getColumnIndex()
- 这就是问题所在,你得到的是列索引,而不是实际的数据。它应该是这样的:
long dateTimess = cursor.getLong(cursor.getColumnIndex(Calls.DATE));