当我在quickblox上检索聊天记录时,我想获取每条消息的日期时间,以便在我的应用上显示它。 QBChatMessage的文档指出:
public long getDateSent()
Gets the date sent value
我认为这个长值是指以毫秒为单位的时间。所以我将它设置为日历,以便能够得到它的字段:
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(messageArray.get(i).getDateSent());
Log.e(TAG, "date sent "+i+" - "+DateHelper.getDateLabel(cal)+" - "+messageArray.get(i).getDateSent());
但是,虽然getDateSent()
返回不同的值,但日历字段保持不变:
04-30 11:51:07.903 20943-20943/com.shoutzapp E/ConversationActivity﹕ date sent 0 - 17/0/1970 - 1430403726
04-30 11:51:07.903 20943-20943/com.shoutzapp E/ConversationActivity﹕ date sent 1 - 17/0/1970 - 1430403749
04-30 11:51:07.904 20943-20943/com.shoutzapp E/ConversationActivity﹕ date sent 2 - 17/0/1970 - 1430403827
04-30 11:51:07.904 20943-20943/com.shoutzapp E/ConversationActivity﹕ date sent 3 - 17/0/1970 - 1430403855
04-30 11:51:07.904 20943-20943/com.shoutzapp E/ConversationActivity﹕ date sent 4 - 17/0/1970 - 1430403912
04-30 11:51:07.905 20943-20943/com.shoutzapp E/ConversationActivity﹕ date sent 5 - 17/0/1970 - 1430403923
我错过了什么? getDateSent()
真的以毫秒为单位返回时间,还是以错误的方式使用Calendar?
非常感谢你提供任何帮助。
答案 0 :(得分:0)
04-30 11:51:07.904 20943-20943/com.shoutzapp
E/ConversationActivity﹕ date sent 4 - 17/0/1970 - 1430403912
根据您发布的日志,getDateSent()
返回秒,而不是毫秒。将getDateSent() * 1000
解析为setTimeInMillis
答案 1 :(得分:0)
我遇到了同样的问题。
我的解决方案是:
long milis = 1473232646 * 1000L;
long milis = getDateSent() * 1000L;