MMS和SMS日期在Android上不同

时间:2019-10-26 07:36:47

标签: java android

我有一个android活动,它为线程ID加载每条消息,然后按日期排序显示它,我没有任何问题,在尝试添加mms之前,mms日期似乎不是与短信日期相同,我实际上是在手机上使用android 7进行测试,并且我希望自android 5起可以使用它

我已经尝试过:date = date * 1000; 我的约会很愉快,cursor.getLong(2);

这里是所有带彩信的查询

String selectionPart = "mid=" + mms.getString(mms.getColumnIndex("_id"));
                Uri uri = Uri.parse("content://mms/part");
                Cursor cursor = getContentResolver().query(uri, null,
                        selectionPart, null, null);
                if(cursor.moveToFirst()) {
                    do {
                        String type = cursor.getString(cursor.getColumnIndex("ct"));
                        if ("text/plain".equals(type)) {
                            String body;
                            String data = cursor.getString(cursor.getColumnIndex("_data"));
                            if (data != null) {
                                body = getMmsText(cursor.getString(cursor.getColumnIndex("_id")));
                            } else {
                                body = cursor.getString(cursor.getColumnIndex("text"));
                            }
                            long date = mms.getLong(2) * 1000L;
                            messages.add(new Message(body, new Date(date), number, true, image, name));
                            Log.d("datesss", String.valueOf(date));
                        }
                    } while(cursor.moveToNext());
                }

我希望到目前为止看起来一样,但是实际上,我的短信日期看起来像1568780915460,而如果我使用* 1000,则短信日期看起来像15719921561571992156000时是彩信。

1 个答案:

答案 0 :(得分:1)

将Instant用于不同的转换方法

Instant instant1 = Instant.ofEpochSecond(1571992156);
System.out.println(instant1);
Instant instant2 = Instant.ofEpochMilli(1571992156000L);
System.out.println(instant2);

这将打印

  

2019-10-25T08:29:16Z
  2019-10-25T08:29:16Z

如果您想将即时转换为日期类型,例如可以

LocalDateTime dateTime1 = LocalDateTime.ofInstant(instant1, ZoneOffset.UTC);
Date date1 = Date.from(instant1);