无法从本机日历事件中读取时间

时间:2012-03-06 12:50:47

标签: blackberry calendar blackberry-jde

我已经在Blackberry日历中为特定日期和时间创建了一个appoitment,我正在尝试使用以下代码读取日期和时间,但它显示错误。

 private void getEvents() {
          try {

             EventList eventList = (EventList)PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_ONLY);
             Enumeration events = eventList.items();
              while (events.hasMoreElements()) {
               Event event = (Event)events.nextElement();

               if(eventList.isSupportedField(Event.ALARM) && event.countValues(Event.ALARM) > 0) {
                    long alarm = event.getDate(Event.ALARM, 0); 
                    System.out.println(alarm);
               }

           }

           }

我不确定if loop

有什么问题

1 个答案:

答案 0 :(得分:0)

字段Event.ALARM包含:

  

字段指定此事件的警报的相对时间。数据   该字段用INT数据类型表示。警报表达出来   以秒为单位,通过从每个中减去警报值得出   此事件的日期/时间发生。例如,如果此字段有   值为600,然后报警首先发生在600秒之前   Event.START指定的日期/时间值。对于重新发生的   事件,通过从中减去存储的值来计算警报   特定事件发生的日期/时间。

因此,您需要从Event.START字段中获取事件开始日期/时间的值。然后,您可以从开始日期/时间中减去Event.ALARM(以秒为单位)的值,以获取任何请求提醒的时间。

long start = event.getDate(Event.START);
int alarm = event.getDate(Event.ALARM);
if (alarm > 0) {
   long reminderTime = start - (long)alarm * 1000L;
   ...
}

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy HH:mm");
String dateString = sdf.formatLocal(start);