添加日历事件

时间:2013-12-17 17:46:59

标签: java android events calendar

我想在我的应用程序的android日历中添加一个事件。我已使用以下代码在日历中添加了该事件。

Calendar c = Calendar.getInstance();
date2 = formatter.parse(eDate);
c.setTime(date2);
c.add(Calendar.HOUR, 1);
eDate = formatter.format(c.getTime());
date2 = formatter.parse(eDate);             
date2 = formatter.parse(eDate);
c.setTime(date2);
eDate = formatter.format(c.getTime());
cal1=Calendar.getInstance();
cal1.setTime(date1);        
cal2=Calendar.getInstance();
cal2.setTime(date2);
calEvent.put("dtstart", cal1.getTimeInMillis());
calEvent.put("dtend", cal2.getTimeInMillis());
String timeZone = TimeZone.getDefault().getID();
calEvent.put("eventTimezone", timeZone);
Uri uri = contentResolver.insert(Uri.parse("content://com.android.calendar/events"),
calEvent);
date2 = formatter.parse(eDate);

我需要在日历上添加一个小时。所以我使用代码添加了1小时到结束日期:

c.add(Calendar.HOUR, 1);

但是当我在日历中查看时,它显示了12小时的活动。这意味着如果明天晚上10点增加一个活动,它将在明天晚上10点到明天上午10点之间创建一个活动。

有人可以告诉我如何添加明天晚上10点开始,明天晚上11点结束的活动吗?

2 个答案:

答案 0 :(得分:0)

您应该检查您未向我们展示的格式模式。

更具体,以下代码适用于我:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd h a");
GregorianCalendar gcal = new GregorianCalendar();
gcal.set(Calendar.MILLISECOND, 0);
gcal.set(2013, Calendar.DECEMBER, 18, 22, 0, 0);
Date date1 = gcal.getTime();
System.out.println(formatter.format(date1)); // Output: 2013-12-18 10 PM
gcal.add(Calendar.HOUR, 1);
Date date2 = gcal.getTime();
System.out.println(formatter.format(date2)); // Output: 2013-12-18 11 PM

答案 1 :(得分:0)

你可以加1小时(毫秒到你的结束时间), 像这样的SomeThing

calEvent.put("dtend", calSet.getTimeInMillis() + 60 * 60 * 1000);