我正在尝试从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谁能给我指出正确的方向,因为我做错了什么。
谢谢
发布于 2012-08-23 19:14:52
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));
}发布于 2011-08-10 21:50:01
将您的答案更改为
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的秒数。现在它应该可以正常工作了。
发布于 2011-07-13 15:41:12
getColumnIndex() -这就是问题所在,你得到的是列索引,而不是实际的数据。它应该是这样的:
长日期时间= cursor.getLong(cursor.getColumnIndex(Calls.DATE));
https://stackoverflow.com/questions/6675077
复制相似问题