Android通话记录格式通话时间

问题描述:

我正在从通话记录中收集数据。 这是我如何格式化通话的日期我的口味:Android通话记录格式通话时间

DateFormat datePattern = DateFormat.getDateInstance(DateFormat.FULL); //Tuesday, October 18, 2011 
Long datelong = Long.parseLong("1318950779497"); 
String date_str = datePattern.format(datelong); 
Date date = new Date(date_str); 
formatter = new SimpleDateFormat("d/M/yyyy"); //18/10/2011 
newdateformatted = formatter.format(date); 

该呼叫的时间:

DateFormat timePattern = DateFormat.getTimeInstance(DateFormat.LONG); //12:40:32 PM GMT+00:00 

我如何格式化这个?我想要24小时的时间码。

+0

我不明白你的问题。看起来你已经在做你想做的事了。 –

+0

我得到的数据如下午3:12:59 GMT + 00:00。我只需要15:12:59 – erdomester

只需再次进行格式化器只是时间:

SimpleDateFormat timeFormater = new SimpleDateFormat("HH:mm:ss"); 
timeString = timeFormater.format(date); 

HH:mm:ss大小写敏感性。 HH是什么给你的24小时时间格式。

下面的小测试的代码工作对我来说:

import java.text.SimpleDateFormat; 
import java.util.Date; 
public class Test{ 


    public static void main(String args[]){ 
    Date today = new Date(); 
    SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); 
    String formated = formatter.format(today); 
    System.out.println(formated); 
    } 
} 

它输出:

15:57:11 
+0

它是timeFormater.format(date_str),但它在这一行上给我一个IllegalArgumentException。 – erdomester

+0

哎呀,对不起。我编辑并修复了它。你必须给它实际的日期对象,而不是一个字符串。 –

+0

好的。现在它给我所有日期的00:00:00。如果将格式更改为kk:mm:ss,它会给我24:00:00。我不明白这一点。 – erdomester