无法从通话记录历史记录中获取正确的月份

时间:2010-06-11 12:59:12

标签: android

我正在尝试从中调用日志中提取信息 机器人。我收到了一个月的通话日期 实际通话时间。我的意思是说提取的信息 我的呼叫日期代码比实际呼叫晚一个 日期。

我在模拟器中有以下内容:

我保存了一个联系人。然后我打电话给联系人。

代码:

我有三种提取呼叫日期信息的方法,但是相同 错误的结果。我的代码如下:

/*  Make the query to call log content */
Cursor callLogResult = context.getContentResolver().query(
    CallLog.Calls.CONTENT_URI, null, null,  null, null);

int columnIndex =  callLogResult.getColumnIndex(Calls.DATE);
Long timeInResult = callLogResult.getLong(columnIndex);

/* Method 1 to change the milliseconds obtained to the readable date formate */
            Time time = new Time();
            time.toMillis(true);
            time.set(timeInResult);

String callDate= time.monthDay+"-"+time.month+"-"+time.year;


/*  Method 2 for extracting the date from tha value read from the column */

           Calendar calendar =  Calendar.getInstance();
           calendar.setTimeInMillis(time);
           String  Month = calendar.get(Calendar.MONTH) ;

/* Method 3 for extracting date from the result obtained  */

          Date date = new Date(timeInResult);
          String mont = date.getMonth()

使用Calendar方法时,我也尝试设置DayLight 保持抵消,但它没有奏效,

      calendar.setTimeZone(TimeZone.getTimeZone("Europe/Paris"));
      int DST_OFFSET = calendar.get(  Calendar.DST_OFFSET );   // DST_OFFSET

      Boolean isSet = calendar.getTimeZone().useDaylightTime();

      if(isSet)
      calendar.set(Calendar.DST_OFFSET , 0);

      int reCheck = calendar.get(Calendar.DST_OFFSET );

但是在重新检查中该值未设置为0。我弄错了 月份值也可以使用它。

请有人帮助我,我错了吗?或者这是错误 模拟器??

谢谢, Nishant Kumar 工科学生

2 个答案:

答案 0 :(得分:1)

Calandar的月份是0到11 您需要在Caladar给您的月份中添加1。 我知道,这很奇怪。

答案 1 :(得分:0)

尝试new Date(timeInResult);