Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Trabalhando com datas

Outra coisa que não ficou muito simples.. mas não foi apresentado no curso.

Quando vou gravar um campo de data, no banco fica DATE? como eu trago essa data com o cursor? o melhor componente é o DatePicker mesmo? usando c.getString, não consegui converter

Sei que oque perguntei não faz parte do curso, mas não consegui encontrar em outro lugar.

4 respostas

Oi Wesley tudo bem ?

No SQLite nós temos esses tipos :

  • NULL
  • INTEGER
  • REAL
  • TEXT
  • BLOB

Você pode ver mais na documentação :

https://www.sqlite.org/datatype3.html

Para você ver o que pode retornar atráves do cursor :

http://developer.android.com/intl/pt-br/reference/android/database/Cursor.html

Não sei bem o que você pretende armazenar e como pensa em fazer isso, o datepicker é uma boa maneira de pegar a data.

Outro caminho é utilizar o CalendarView.

Dá uma olhadinha para ver qual se encaixa melhor no seu contexto !

DatePicker :

http://developer.android.com/intl/pt-br/reference/android/widget/DatePicker.html

CalendarView :

http://developer.android.com/intl/pt-br/reference/android/widget/CalendarView.html

Espero ter ajudado !

Qualquer dúvida pode falar.

Abraço :)

solução!

Eu devo ter feito alguma coisa bem errada, configurei o campo como DATETIME

Quando usa alguma configuração que ele não suporta, como ele se comporta? como texto?

como o cursor tras string, e ele tava gravando de um jetio que eu não conhecia, consegui resolver desta forma:

public Date retornarDataNasc(String data){
        if(data == null){
            return null;
        }

        SimpleDateFormat formato =  new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
        //SimpleDateFormat formato =  new SimpleDateFormat("yyyy-mm-dd");

        Calendar cal  = Calendar.getInstance();
        Date dataFormatada = null;

        try {
            dataFormatada = formato.parse(data);

        } catch (ParseException e) {
            return null;
        }
        cal.setTime(dataFormatada);

        return cal.getTime();
    }

Wesley,

Eu recomendo que na criação você deixei como String, ou seja, Text, pois dessa forma acredito que você deva conseguir manipular com maior facilidade.

Geralmente acaba tendo algum problema, ele nem permite que o banco seja criado, dando uma Exception.

Como disse não sei a forma que você está manipulando, aparentemente esse seu método está tratando todas as maneiras até chegar no resultado que quer, o date.

Espero ter ajudado !

Abraço

Muito Obrigado Matheus.