Sobre o erro do log não entendi do porque estar ocorrendo
Sobre a exibição em tela o seu código parece estar correto.
Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Novo Hamburgo - RS - Brasil
------------------
Minha lista de presentes: clique aqui
Linux user: #525086
------------------
2012/7/27 Evandro Choma <evandrochoma@gmail.com>
Maicon
Modifiquei deixando assim:String dataFundacao = "";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dataFund;
try {
dataFund = dateFormat.parse(cliente.dataFundacao.toString());dataFund = null;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
dataFundacao = "erro: " + e.toString();
}
//Log.i("AFV", "Data Fundação: "+ cliente.dataFundacao + "|" + dataFund.toString());
Log.i("AFV", "Data Fundação: "+ dataFundacao);
Contudo a linha do Log precisa ser comentada caso contrário ela dá Force close. e dai no Log cat imprimiu esta seguinte mensagem:
07-27 11:28:47.303: I/AFV(2643): Data Fundação: erro: java.text.ParseException: Unparseable date: "Mon Oct 06 00:00:00 GMT-03:00 1980"
Mas dai fiquei com uma dúvida, se o parse é para pegar e jogar na data se estou pegando a data de um objeto cliente e esta no cliente já é do tipo de data, eu precisaria fazer este parse?
Outro detalhe eu com a data parseada corretamente, para formatar ela do jeito que vou imprimir em tela seria assim?
SimpleDateFormat monitor = new SimpleDateFormat("dd/mm/yyyy");
String dataFormatada = monitor.format(dataFund));
Obrigado
Evandro ChomaEm 27 de julho de 2012 11:02, Maicon Strey <mstrey@gmail.com> escreveu:Olá Evandro,Se eu entendi o teu log está dizendo exatamente qual o erro.Na primeira linha tu estas criando formatando a data como "dd/MM/yyyy"
No teu log a mensagem diz que é impossível fazer parse do conteúdo "Mon Oct 06 00:00:00 GMT-03:00 1980"Lembre-se que aqui você está lendo uma data e portanto precisa ler no formato de origem e não o formato que será apresentado. Na origem o formato é "yyyy-MM-dd HH:mm:ss". Uma vez que o parse foi feito para uma variável de data, esta variável não possui um formato fixo, ela é apenas uma data.Para exibir tu define um novo formato e faz um parse desta variável para uma string utilizando o formato de apresentação.Maicon Strey
Novo Hamburgo - RS - Brasil
------------------Minha lista de presentes: clique aquiLinux user: #525086------------------
2012/7/27 Evandro Choma <evandrochoma@gmail.com>Bom Dia Maicon
Eu tenho um Repositório onde persiste os dados e tb ele me devolve objetos, sempre que solicito e está funcionando, então resolvi primeiro ver o detalhe de apresentar em tela depois resolvo o salvar.
Dai seguindo as suas dicas fiz deste jeito, já que recebo um objeto cliente com os dados e a data é do tipo Date.
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String dataFundacao;
try {
dataFundacao = dateFormat.parse(cliente.dataFundacao.toString()).toString();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
dataFundacao = "erro: " + e.toString();
}
Log.i("AFV", "Data Fundação: "+ cliente.dataFundacao + "|" + dataFundacao );
campoDataFundacao.setText(dataFundacao.toString());
Dai o valor gravado no logcat ficou assim:
07-27 10:44:58.383: I/AFV(25735): Data Fundação: Mon Oct 06 00:00:00 GMT-03:00 1980|erro: java.text.ParseException: Unparseable date: "Mon Oct 06 00:00:00 GMT-03:00 1980"
Em 27 de julho de 2012 09:27, Maicon Strey <mstrey@gmail.com> escreveu:Evandro,Para inserir no banco estou fazendo assim:ContentValues ctv = new ContentValues();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String data = dateFormat.format(new Date());ctv.put("data", data);db.insert(TABELA,null,ctv) > 0;db.close();E para recuperar:SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Objeto obj = new Objeto();String query = " SELECT * FROM tabela";Cursor cur = db.rawQuery(query, null);cur.moveToFirst();if (cur.getCount() > 0){Date data = new Date();data = dateFormat.parse(cur.getString(cur.getColumnIndex("data")));obj.setData(data);} else{obj.setData(new Date());}cur.close();Assim consigo gravar e recuperar as datas corretamente.Claro que nos exemplos assim a lógica está bem simplificada. adapte ela pra sua realidade.Atenciosamente.Maicon Strey
Novo Hamburgo - RS - Brasil
------------------Minha lista de presentes: clique aquiLinux user: #525086------------------
2012/7/27 Evandro Choma <evandrochoma@gmail.com>coloquei o new Date() no momento de criar o objeto cliente, mas dai baixei o banco e abri ele o campo data está nulo.
Vou colocar uns Log.i para ver como vai transmitindo estas datas.
em relação ao outro problema, seria para apresentar na tela a data que está no banco de dados, está mostrando sempre o campo vazio. e o banco tem dados, mas ao tentar tratar estes dados para ficar bonito tipo 27/07/2012 o campo fica com valor null.
Em 26 de julho de 2012 18:45, Alex Baule <alexwbaule@gmail.com> escreveu:
Pq vc nao usa o NOW() do banco mesmo ? na hr de inserir passa 'NOW()' que ele insere a data.Em 26 de julho de 2012 18:21, Daniel Novi Capelassi <daniel9c@gmail.com> escreveu:
Sobre a data, é complicado falar o porque não salva no banco de dados somente com a linha que vc postou.Mas tente fazer o seguinte:cliente.dataCadastro = new Date();Se não der certo, acho legal vc debugar e ver no momento em que salva este campo no banco, se o campo realmente contem o valor que foi passado.Sobre a outra pergunta não consegui entender direito o problema.
2012/7/27 Evandro Choma <evandrochoma@gmail.com>cliente.dataCadastro = new Date(System.currentTimeMillis());--
------------------------------------------------------------------------------------------------------------------------
// "Eu adoraria mudar o mundo, pena que eles não me fornecem o código-fonte". \\
~
\°v°
( . )\ --> open-source
^ ^
------------------------------------------------------------------------------------------------------------------------
0 comentários:
Postar um comentário