2014-01-06 3 views
3

После код, который я использовал, чтобы добавить событие в календарь AndroidУстановка значения содержания даты на календаре андроида

Cursor cursor=getContentResolver().query(Uri.parse("content://com.android.calendar/calendars"), new String[]{"_id", "displayname"}, null, null, null); 
cursor.moveToFirst(); 
// Get calendars name 
String calendarNames[] = new String[cursor.getCount()]; 
// Get calendars id 
int[] calendarId = new int[cursor.getCount()]; 
for (int i = 0; i < calendarNames.length; i++) 
{ 
     calendarId[i] = cursor.getInt(0); 
     calendarNames[i] = cursor.getString(1); 
     cursor.moveToNext(); 
} 

cursor.close(); 

ContentValues contentEvent = new ContentValues(); 
contentEvent.put("calendar_id", 1); 
contentEvent.put("title", calTitle);               
contentEvent.put("description", "Test Event");         
contentEvent.put("eventLocation", "New York");        
long startTime = System.currentTimeMillis() + 1000 * 60 * 60; 
long endTime = System.currentTimeMillis() + 1000 * 60 * 60 * 2; 

contentEvent.put("dtstart", startTime); 
contentEvent.put("dtend", endTime);           
contentEvent.put("allDay", 1);                 
contentEvent.put("hasAlarm",1); 

Uri eventsUri = Uri.parse("content://com.android.calendar/events");  
getContentResolver().insert(eventsUri, contentEvent); 

Как я изменить dtstart и dtend к датам, которые я предпочитаю? Есть ли определенный формат для этого? например: скажем, мне нужно добавить dtstart - 02/11/2013 и dtend - 03/11/2013

ответ

7

Вы ищете что-то вроде этого?

public long getLongAsDate(int year, int month, int date) { 
     Calendar calendar = new GregorianCalendar(); 
     calendar.set(Calendar.DAY_OF_MONTH, date); 
     calendar.set(Calendar.MONTH, month - 1); 
     calendar.set(Calendar.YEAR, year); 
     return calendar.getTimeInMillis(); 
} 

Просто позвоните getLongAsDate (год, месяц, дата) с нужной датой, например. getLongAsDate (2013, 11, 2)

... 
long startTime = getLongAsDate(2013, 11, 2); 
long endTime = getLongAsDate(2013, 11, 3); 
contentEvent.put("dtstart", startTime); 
contentEvent.put("dtend", endTime); 
... 
+0

Все, что я хочу это сделать надстройку 'dtstart' до 02/11/2013 и' dtend' до 03/11/2013 –

+0

Метод возвращает желаемую дату как длинную. – Endzeit

0

Попробуйте что-то вроде этого

Calendar cl = Calendar.getInstance(); 
cl.setTimeInMillis(milliseconds); //here your time in miliseconds 
String date = "" + cl.get(Calendar.DAY_OF_MONTH) + "/" + cl.get(Calendar.MONTH) + "/" + cl.get(Calendar.YEAR); 
Смежные вопросы