Запрос Android CalendarProvider обеспечивает странное время начала и окончания

Поэтому, когда я запрашиваю у CalendarProvider список событий для моего личного календаря, я получаю довольно странные времена начала и окончания. Например, я вижу результат в запросе 1970-01-13, но в моем приложении Google Calendar он отображается правильно как 2015-02-01. Все события, которые я получил в результате, имеют такие странные времена.

Мой запрос ниже.

 String[] mProjection = new String[]{
            Events.CALENDAR_ID,                       
            Events.ORGANIZER,
            Events.TITLE,
            Events.DTSTART,
            Events.DTEND,
            Events._ID
    };

    ContentResolver cr = getActivity().getContentResolver();
    Uri uri = Events.CONTENT_URI;
    String selection = Events.CALENDAR_ID + " = ?";
    String[] selectionArgs = new String[] {"2"};
    Cursor cur = cr.query(uri, mProjection, selection, selectionArgs, null);

    Log.i(TAG, "events " + cur.getCount());

    TextView textView = (TextView) rootView.findViewById(R.id.dummy_text);
    while (cur.moveToNext()) {
        int calID = cur.getInt(0);
        String organizer = cur.getString(1);
        String title = cur.getString(2);
        int start = cur.getInt(3);
        int end = cur.getInt(4);
        int event_id = cur.getInt(5);

        Calendar startCal = Calendar.getInstance();
        startCal.setTimeInMillis(start);
        Calendar endCal = Calendar.getInstance();
        endCal.setTimeInMillis(end);

Вот мой код для преобразования времени для чтения.

public  static String getHumanDate(int year, int month, int dayOfMonth) {
        String monthZero = "";
        String dayOfMonthZero = "";
        if ((month + 1) < 10)
            monthZero = "0";
        if (dayOfMonth < 10)
            dayOfMonthZero = "0";

        return year + "-" + monthZero + (month + 1) + "-" + dayOfMonthZero + dayOfMonth;
    }

1 ответ

Решение

Догадаться. Должен был использовать

    long start = cur.getLong(3);
    long end = cur.getLong(4);

Вместо int.

Другие вопросы по тегам