将日期和时间添加到Android日历

时间:2013-01-16 10:49:15

标签: android calendar

我使用以下代码将此字符串 Mon,2013年2月11日08:00:00 CST 转换为日期

Date date = null;
long starttime,endtime;
try {
    date = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:Ss z").parse(tit1);
                
} catch (java.text.ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} 

并使用以下代码将此日期添加到日历

try{
    Calendar cal = Calendar.getInstance();   
    starttime=date.getTime();
    endtime=date.getTime();
    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra("beginTime",starttime);
    intent.putExtra("allDay", true);
    intent.putExtra("rrule", "FREQ=YEARLY");
    intent.putExtra("endTime", endtime);
    intent.putExtra("title",tit);
}
catch(Exception e)
{
}

该活动正在增加,就像2013年2月11日星期一一样。 我需要添加事件如下所示

From: Mon, 11 Feb 2013 08:00AM
To:   Mon, 11 Feb 2013 08:30AM

如何使用以下字符串和简单日期格式样式执行此操作。

P.S。 :: starttime& endtime是长数据类型

1 个答案:

答案 0 :(得分:0)

我认为获取日期格式存在问题。请检查并按照以下内容执行

如果您获得如下Date = May 05, 2012, 07:10PM的数据,则将日期转换为数字格式为5月为05,并传递以下代码中的值。

Calendar beginCal = Calendar.getInstance();
beginCal.set(year, mnth, day, hrs, min);
startTime = beginCal.getTimeInMillis();

Calendar endCal = Calendar.getInstance();
endCal.set(year, mnth, day, hrs, min);
endTime = endCal.getTimeInMillis();     

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra(Events.TITLE, summary);
intent.putExtra(Events.DESCRIPTION, summary);
intent.putExtra(Events.EVENT_LOCATION, "");     
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginCal.getTimeInMillis());
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endCal.getTimeInMillis());
intent.putExtra(Events.ALL_DAY, allDayFlag);
intent.putExtra(Events.STATUS, 1);
intent.putExtra(Events.VISIBLE, 0);
intent.putExtra(Events.HAS_ALARM, 1);
startActivity(intent);