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

Ajuda salvar hora em mongodb com android

Opa pessoal, beleza? Estou trabalhando em um app, e é o seguinte. Nele eu coloquei um campo para o usuário colocar a hora, estou utilizado o TimePickDialog para isso.

Minha entidade tenho uma property do tipo Calendar, na qual eu uso para guardar essa hora digitada pelo usuário. Bom até ai beleza, pego a data em texto, tenho uma extension function que converte ela em Calendar para min e show.

O fluxo do app: Clico no botão para salvar essa entidade, preencho os campos, se o usuário não colocar a data e a hora, eu pego elas no momento atual do cadastro. o usuário volta com o botão de voltar do celular, e registra essa entidade. Quando ele registra, automaticamente, levo ele para ver os detalhes dessa entidade, aparece a data e hora certinho!

Clico no botão voltar novamente e estamos na tela que lista essas entidades cadastradas.

O problema::

Quando eu clico na entidade para ver os detalhes dela, a data muda sozinha rsrs, por exemplo, se o usuário salvou as 19:00 Quando clico para ver os detalhes dessa entidade de novo, aparece uma nova data nada haver kk, tipo 03:45

Bom, fusei fusei e nada. Posso estar trabalhando com horas do jeito errado, se alguém puder ajudar. Mas acredito que o mongodb trabalha com UTC, fuso horarios diferentes, acho que ele me devolve 3 horas a mais. Segue o Gist para entender melhor o que fiz.

https://gist.github.com/gitdaniellopes/3c1879d833c49f2886dc927cce05d340

2 respostas

Fala Daniel, tudo bem ?

Cara talvez tu pudesse salvar no bd uma string com a data e na hora de mostrar tu faz um parse de string pra calendar, isso no geral resolveria o problema, claro que tem problemas relacionado com a integridade do dado em si, que qualquer coisa pode ser salva ali e tals.

solução!

Opa Matheus, beleza? Cara, acabou que eu fiz isso, pelo menos com a hora, eu joguei uma String na api sabe, ai salva no banco como String mesmo.

Quando o usuário não coloca a hora, eu pego ela atual, e ai dou um getInstance no Calendar, e fiz uma extension que converte ele para String para min.

Enfim resolve kk, é um app de treino também nada demais. A data esta certinha! Só a hora que deu esse problema, mas é algo com o mongo mesmo, eu precisaria resolver alguma coisa na parte do timezone algo assim. Mas de boa. Valeeu