我有一个应用程序可以读取传入和传出的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);
答案 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