В Android дата каждого события (например, дни рождения и юбилеи) сохраняется в формате String, например. "2011-12-24".Преобразование даты Android Строки к объектам даты
Это, по крайней мере, случай для моего телефона. Некоторые другие телефоны могут хранить эти даты в других форматах, если у них есть календарь, отличный от григорианского.
Даже для телефонов с григорианским календарем установлены даты с часами и минутами и без. Я получаю такую строку даты, когда я запрашиваю таблицу контактов для события:
cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE))
Это приводит к (например):
«2011-12-14» или «2011-12-24T00: 00: 00Z "
Вы можете видеть, что существует множество различных возможных форматов. Чтобы рассчитать с датами, мне нужно преобразовать их из объектов String в Date, не нужно ли мне?
Как это сделать?
PS: Я знаю, что есть функция синтаксического анализа для дат Java объектов:
DateFormat myDateFormat = new SimpleDateFormat("dd/MM/yy");
Date tempDate = myDateFormat.parse("24/12/2011");
Но в Android, я не знаю, какой формат я буду иметь дело с, не так ли?
Спасибо за хороший и полезный ответ! Я запрашиваю таблицу контактов для события: cursor.getString (cursor.getColumnIndex (ContactsContract.CommonDataKinds.Event.START_DATE)) – caw
... и здесь я получаю дату в форме String, например. "2011-12-24T00: 00: 00Z". Как я могу получить дату как объект Date? Нет метода «cursor.getDate()» ... – caw
В этом случае вы можете проанализировать его. Кроме того, этот формат даты будет таким же, независимо от языка, поэтому вы можете смело предположить это. –