首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从安卓通话记录中获取通话时间并转换为DateFormat

如何从安卓通话记录中获取通话时间并转换为DateFormat
EN

Stack Overflow用户
提问于 2011-07-13 14:47:22
回答 3查看 6.7K关注 0票数 1

我正在尝试从android sdk 2.2的通话记录中获取通话时间。

代码语言:javascript
运行
复制
        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);

但我得到的结果是错误的

代码语言:javascript
运行
复制
01-01-70 05:29

谁能给我指出正确的方向,因为我做错了什么。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2012-08-23 19:14:52

代码语言:javascript
运行
复制
 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));

}
票数 2
EN

Stack Overflow用户

发布于 2011-08-10 21:50:01

将您的答案更改为

代码语言:javascript
运行
复制
    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的秒数。现在它应该可以正常工作了。

票数 1
EN

Stack Overflow用户

发布于 2011-07-13 15:41:12

getColumnIndex() -这就是问题所在,你得到的是列索引,而不是实际的数据。它应该是这样的:

长日期时间= cursor.getLong(cursor.getColumnIndex(Calls.DATE));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6675077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档