Android呼叫日志格式呼叫时间

Android呼叫日志格式呼叫时间,android,calllog,Android,Calllog,我正在从通话记录中收集数据。 以下是我根据自己的喜好设置通话日期的方式: DateFormat datePattern = DateFormat.getDateInstance(DateFormat.FULL); //Tuesday, October 18, 2011 Long datelong = Long.parseLong("1318950779497"); String date_str = datePattern.format(datelong); Date date = new D

我正在从通话记录中收集数据。 以下是我根据自己的喜好设置通话日期的方式:

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小时时间代码。

只需为时间制作另一个格式化程序:

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

我不明白你的问题。看起来你已经在做你想做的事情了。我得到的数据是格林威治时间下午3:12:59+00:00。我只想要15:12:59它是timeformat.format(date_str),但它在这一行上给了我一个IllegalArgumentException。哦,对不起。我编辑并修复了它。您必须给它实际的日期对象,而不是字符串。好的。现在它给了我所有日期的00:00:00。如果将格式更改为kk:mm:ss,它将为我提供24:00:00。我不明白。您要传递的
日期
对象必须设置为00:00:00。在调用format时,请检查您是否使用了正确的
Date
对象。我刚刚尝试了代码,它对我来说很好。这显示了当前日期,因为date today=new date();请注意,我的日期一开始很长(“1318950779497”),然后我将其设置为字符串(2011年10月18日星期二),并将其传递给日期对象:date date=new date(date_str);。这给了我00:00:00。我猜日期不包括时间。但我不知道如何解决这个问题。