结束日期无法添加到日历中

时间:2014-10-23 09:35:18

标签: android android-calendar

我想将事件添加到日历中。该活动必须显示特定时间段。 使用代码获取开始时间和结束时间:

  java.sql.Timestamp tsStart = java.sql.Timestamp.valueOf(2014 + "-" + 10
            + "-" + 25 + " " + 10 + ":" + 25 + ":00");
    java.sql.Timestamp tsEnd = java.sql.Timestamp.valueOf(2014 + "-" + 12
            + "-" + 25 + " " + 11 + ":" + 25 + ":00");

    mStartTime = tsStart.getTime();
    mEndTime = tsEnd.getTime();

这里的开始时间是25,OCt 2014  结束时间是2014年12月25日。

               ContentValues event = new ContentValues();
                event.put("calendar_id", 1);
                event.put("eventTimezone", TimeZone.getDefault().getID());
                event.put("title", "test");
                event.put("description","description");
                event.put("dtstart", mStartTime);
                event.put("dtend", mEndTime);
                event.put("rrule", "FREQ=MONTHLY");
                event.put("allDay", 1); 
                event.put("eventStatus", 1);
                event.put("hasAlarm", 1);
               Uri url = getContentResolver().insert(mEventsUri, event);

这是我用于添加到日历的代码。但事件未在日历中正确更新。即,事件将显示在结束日期之后。我该如何解决这个问题? 请帮帮我......

1 个答案:

答案 0 :(得分:1)

您可以使用Calender Instance而不是创建java.sql对象。

我尝试了以下操作来设置未来的时间并让它一直运行到指定的日期。

Calendar currentDate = Calendar.getInstance();

currentDate读取当前设备时间。

final Calendar future = Calendar.getInstance();

// Month 0-January, 11-December
future.set(2014, 9, 25, 23, 59, 59); 

创建一个处理程序以检查将来的日期实例。

// runs every second 
final Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                public void run() {
                    handler.postDelayed(this, 1000); // set time in milliseconds

                    if (future.before(currentDate)) {
                        close_app();
                    }
                }
            }, 1000);

future.before(currentDate)检查将来的时间。