0

我有一个读取传入和传出短信的应用程序。Logcat 正确显示除日期字符串之外的所有变量。它总是这样。1254785965412。下面是我的代码,如何将此毫秒时间更改为可读格式,例如下午 2:50 或 6 月 25 日 14:50。

Uri smsURI = Uri.parse("content://sms/sent");
            Cursor c = getContentResolver().query(smsURI, new String[]{"address", "date", "body", "type"}, null, null, null);
            String[] columns = new String[]{"address", "date", "body", "type"};
            c.moveToNext();
            String recipient = c.getString(c.getColumnIndex(columns[0]));
            String date = c.getString(c.getColumnIndex(columns[1]));
            String message = c.getString(c.getColumnIndex(columns[2]));
            String type = c.getString(c.getColumnIndex(columns[3]));
            Log.d("DetectOutgoingSMS", recipient + " , " + date + " , " + message + " , " +type);
4

3 回答 3

4

Date尝试使用 MS 时间创建一个新对象。

long dateMs = c.getLong(c.getColumnIndex(columns[1]));
Date date = new Date(dateMs);
于 2013-06-25T20:24:28.770 回答
1
Date date = new Date(milliseconds);

然后您可以将整个日期作为字符串获取:

String dateString = date.toString();

或者只是日期的一部分

int dateInt = date.getHours();
于 2013-06-25T20:25:48.350 回答
0

使用 DateFormat 来控制日期的格式或获取对不同语言环境有意义的格式....

Date messageDate = new Date(milliseconds);
DataFormat df = DateFormat.getDateTimeInstance();
String localeAwareReadableDate = df.format(messageDate);

在设置为美国英语的设备上,格式如下

Dec 31, 1969 4:00:00 PM
于 2013-06-25T20:35:37.813 回答