如何将毫秒转换为时间android

时间:2013-06-25 20:20:30

标签: android

我有一个应用程序可以读取传入和传出的SMS。除日期字符串外,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);

3 个答案:

答案 0 :(得分:4)

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

long dateMs = c.getLong(c.getColumnIndex(columns[1]));
Date date = new Date(dateMs);

答案 1 :(得分:1)

Date date = new Date(milliseconds);

然后你可以将整个日期作为字符串:

String dateString = date.toString();

或日期的正好部分

int dateInt = date.getHours();

答案 2 :(得分:0)

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

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

在设置为美国英语的设备上将格式化为

Dec 31, 1969 4:00:00 PM