HI,
Estou utilizando essa função numa rotina para importar um arquivo texto delimitado.
Splitting a string in a string list
http://www.delphi3000.com/articles/article_2618.asp?SK=
Fiquem na Paz!!!
Mostrando postagens com marcador string. Mostrar todas as postagens
Mostrando postagens com marcador string. Mostrar todas as postagens
domingo, agosto 28, 2011
domingo, maio 22, 2011
Gravando datas no SQLite do Android
HI,
Continuo avançando aqui no exemplo expenses. Hoje consegui gravar a data no banco de dados, graças a Deus.
Depois de muita tentativa e erro e muitas pesquisas no Google, fui achando as soluções.
Primeiro erro que me deparei foi esse: java.text.ParseException: Unparseable date
Tava tentando converter a data da despesa ( uma string ) que tava no formato dd-MM-yyyy para jogar dentro de uma variável do tipo data. Só depois que percebi que tinha esquecido de trocar o traço pela barra deixando o formato assim: dd/MM/yyyy.
Código para converter uma string em data
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date datepayment = formatter.parse(datepaymentText.getText().toString());
datepaymentText é um Button.
O segundo erro que me deparei foi: java.lang.ClassCastException: java.util.Date
Pensei que o problema era na hora de gravar no campo data da tabela. Desabilitei a linha que dá um insert no banco e mesmo assim tava dando esse erro. Então deduzi que o problema era na passagem de parametro. Fiquei pensando, como é que pode passar um campo data para um metódo que tem uma variavel do tipo data e dá erro?
Pesquisando no google descobrir que ao invés de usar a biblioteca java.sql.Date, eu deveria usar java.util.Date. Depois que fiz isso, não deu mais erro.
E nessa mesma busca vi que eu deveria converter essa variável data que tá no formato dd/MM/yyyy para yyyy-MM-dd, que é o formaro do banco de dados.
O código para gravar a data no banco de dados ficou assim:
public long createExpense(Date datepayment){
ContentValues initialValues = new ContentValues();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dateFormat.applyPattern("yyyy-MM-dd");
initialValues.put(KEY_DATEPAYMENT, dateFormat.format(datepayment));
return mDb.insert(DB_TABLE, null, initialValues);
}
Deixei só o campo data para exemplificar.
Agora tá beleza, tá gravando e recuperando o campo data
Ficou assim a tela do programa

Espero que possa ser útil.
Páginas que me ajudaram
http://www.guj.com.br/java/76586-converter-um-campo-de-um-text-field-em-date#403825
http://www.guj.com.br/java/36076-converter-string-para-uma-data
http://stackoverflow.com/questions/754684/how-to-insert-a-sqlite-record-with-a-datetime-set-to-now-in-android-application
http://stackoverflow.com/questions/3842509/android-java-datetime-values-from-string-to-long-to-string-issue
Fiquem na Paz!!!
Continuo avançando aqui no exemplo expenses. Hoje consegui gravar a data no banco de dados, graças a Deus.
Depois de muita tentativa e erro e muitas pesquisas no Google, fui achando as soluções.
Primeiro erro que me deparei foi esse: java.text.ParseException: Unparseable date
Tava tentando converter a data da despesa ( uma string ) que tava no formato dd-MM-yyyy para jogar dentro de uma variável do tipo data. Só depois que percebi que tinha esquecido de trocar o traço pela barra deixando o formato assim: dd/MM/yyyy.
Código para converter uma string em data
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date datepayment = formatter.parse(datepaymentText.getText().toString());
datepaymentText é um Button.
O segundo erro que me deparei foi: java.lang.ClassCastException: java.util.Date
Pensei que o problema era na hora de gravar no campo data da tabela. Desabilitei a linha que dá um insert no banco e mesmo assim tava dando esse erro. Então deduzi que o problema era na passagem de parametro. Fiquei pensando, como é que pode passar um campo data para um metódo que tem uma variavel do tipo data e dá erro?
Pesquisando no google descobrir que ao invés de usar a biblioteca java.sql.Date, eu deveria usar java.util.Date. Depois que fiz isso, não deu mais erro.
E nessa mesma busca vi que eu deveria converter essa variável data que tá no formato dd/MM/yyyy para yyyy-MM-dd, que é o formaro do banco de dados.
O código para gravar a data no banco de dados ficou assim:
public long createExpense(Date datepayment){
ContentValues initialValues = new ContentValues();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dateFormat.applyPattern("yyyy-MM-dd");
initialValues.put(KEY_DATEPAYMENT, dateFormat.format(datepayment));
return mDb.insert(DB_TABLE, null, initialValues);
}
Deixei só o campo data para exemplificar.
Agora tá beleza, tá gravando e recuperando o campo data
Ficou assim a tela do programa

Espero que possa ser útil.
Páginas que me ajudaram
http://www.guj.com.br/java/76586-converter-um-campo-de-um-text-field-em-date#403825
http://www.guj.com.br/java/36076-converter-string-para-uma-data
http://stackoverflow.com/questions/754684/how-to-insert-a-sqlite-record-with-a-datetime-set-to-now-in-android-application
http://stackoverflow.com/questions/3842509/android-java-datetime-values-from-string-to-long-to-string-issue
Fiquem na Paz!!!
Assinar:
Postagens (Atom)