如何从android调用日志中获取调用时间并将其转换为DateFormat

时间:2011-07-13 06:47:22

标签: android

我正试图从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

有人能指出我正确的方向,就像我做错了一样。

由于

3 个答案:

答案 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));