de String para date (“yyyy/MM/dd”) e de date para String (“dd/MM/yyyy”)
estou com problemas…
meus metodos:
public static String dataParaString(Date data){
DateFormat sdf = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("pt", "BR"));
String dataS = sdf.format(data);
return dataS;
}
public static Date stringForDate(String d){
DateFormat df1 = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("en", "US"));
Date date = null;
try{
date = df1.parse(d);
}catch (Exception e){
System.out.println("nao deu certo");
}
return date;
}
de data para String funciona perfeitamente
eu quero jogar no banco a data (“dd/MM/yyyy”) para (“yyyy-MM-dd”)
Exemplo:
eu digito: 31/10/2007
seto a data no banco (é pra ficar assim (“yyyy-MM-dd”)
o metodo responde…
nao da certo…
nao da certo…
hehe
vlw pessoal
[code]SimpleDateFormat formatador = new SimpleDateFormat(“yyyy/MM/dd”);
Date data = formatador.parse(“2007/10/31”);[/code]
Mas você não precisa se preocupar com isso, o driver do banco já faz isso, basta usar o metodo setDate() de um PreparedStatement .
Kra uma alternativa seria fazer isso pelo proprio SGBD, isto é, se ele suportar. Por exemplo, o Oracle, possui um recurso bastante interessante. O formato padrão do oracle para data é mês, dia e ano (MMDDYYYY), diferente do formato brasileiro que é dia, mês e ano, daí a necessidade de formatarmos a data para o padrão brasileiro. A formatação da data no Oracle e feita através do comando ALTER SESSION, que além dela serve também para alterar outras características da sessão corrente, sendo a expressão ALTER SESSION sempre usada para formatar datas de acordo com o formato regional.
A sintaxe do comando está descrita abaixo:
ALTER SESSION SET NLS_DATE_FORMAT = <date_format>
Depois disso é só usar a funcao do Oracle toDate e pronto nao importa o formato da data ele sempre vai configurar no formato que vc indicou.
Falow! 