Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

Формат даты дней рождения контактов гугл - Программирование Android

25.10.2013, 14:25. Просмотров 922. Ответов 3
Метки нет (Все метки)

В этой теме в первом посте мною написан метод получения дней рождения контактов. Недавно заметил, что появилась галочка, которая позволяет при внесении дня рождения не указывать год рождения. Из-за этого у некоторых пользователей полезли ошибки, т.к. извлечение составляющих даты стало происходить не верно.
Java
1
2
String date = cursor.getString(2); //у меня приходит в формате YYYY-MM-DD
String[] strdate = date.split("-");//все удачно получалось
Теперь, если стоит галка "Не указывать год", опять же у меня формат даты получается такой --MM-DD
Я стал дату разбирать так:
Java
1
2
int ND=Integer.parseInt(date.substring(date.length()-2, date.length()));
int NM=Integer.parseInt(date.substring(date.length()-5, date.length()-3));
У меня все работает на ура. Но у других пользователей стали приходит ошибки. Например месяц у меня по номеру месяца минус 1 берет из массива наименование месяцев, но вдруг приходит ошибка, что мол длин массива 12, позиция -2 или 28, т.е. ерунда какая то.
Вопрос такой: как из даты рождения контактов ПРАВИЛЬНО взять ее составляющие.
СПАСИБО ЗАРАНЕЕ!
Я так полагаю, формат даты может быть разным, отсюда и ошибки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 14:25     Формат даты дней рождения контактов гугл
Посмотрите здесь:
Android Юбилей и День рождения в контактах Гугл
Изменить формат даты Android
Получение даты и прибавление к ней заданного количества дней Android
Android Формат даты или как получить часы, минуты, секунды
Сортировка контактов в ListView Android
Список контактов с аватарками Android
Получить полный список контактов Android
Android Не срабатывает разрешение на чтение контактов
Выбор контактов для отправки смс Android
Android Гуру, проконсультируйте по изменению списка контактов
Android Ошибка добавления списка контактов в ListView
Android Список контактов с использованием RecyclerView и SQLite

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.10.2013, 14:44     Формат даты дней рождения контактов гугл #2
мое скромное решение.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class rr {
    
    public static void main(String[] args) {
        String date1 = "04-22";
        String date2 = "2000-10-10";
        parse(date1);
        parse(date2);
    }
 
    public static void parse(String d) {
        if (d != null) {
            Pattern p = Pattern.compile("^(19|20)\\d\\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$");
            Matcher m = p.matcher(d);
            final String format;
            if(m.matches()) {
                format = "yyyy-MM-dd";
            } else {
                format = "MM-dd";
            }
            
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            try {
                Date date = sdf.parse(d);
                Calendar c = Calendar.getInstance();
                c.setTime(date);
                int day = c.get(Calendar.DAY_OF_MONTH);
                int month = c.get(Calendar.MONTH) + 1;
                int year = c.get(Calendar.YEAR);
                System.out.println(d + " - " + format);
                System.out.println(day+"/"+month+"/"+year);
            } catch (ParseException e) {
            }
            
        }
    }
 
}
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
26.10.2013, 21:49  [ТС]     Формат даты дней рождения контактов гугл #3
Я попробовал разные форматы подставлять, везде ошибки, кроме тех что с тирешками. В чем ошибка, когда я извлекаю составляющие даты использую substring?

Добавлено через 13 минут
Короче, формат даты --11-23 не прокатил...жаль
В чем же собака порылась?
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
30.12.2013, 22:26  [ТС]     Формат даты дней рождения контактов гугл #4
Опять столкнулся с проблемой разбора дат, точнее их сортировка в запросе sql
Пока мне встретились такие форматы:
YYYY-MM-DDTHH:mm:ss.ms+GMT
YYYY-MM-DD
--MM-DD

Все эти данные возвращает контейнер контактов гугла. Никак не придумаю как мне в запросе их обрабатывать?
Пока имел последние два варианта просто отрезал дни и месяцы используя метод substr, но появился еще один вариант. Теперь никак... помогите пожалуйста.
Yandex
Объявления
30.12.2013, 22:26     Формат даты дней рождения контактов гугл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru