Seguinte, estou tentando converter uma data de dia/mes/ano para ano-mes-dia…Bem, ja li muito, pesquisei aqui no forum e outros forums e os exemplos são na maioria das vezes o mesmo, o mesmo jeitão de converter.
Problema é que eu ainda não estou conseguindo.
O pattern passado para o SimpleDateFormat é o que dita o formato da String recebida pelo método parse. portanto ele deve bater com o formato que você está passando (d/MM/yyyy)
fernandopaiva
Eric…Mas como eu faço para minha data ficar como 08/11/2010 ??? acabei de dar uma olhada nas opções do sistema operacional e ver que ela esta formatada para ser exibida assim, mas na aplicação java eu não consigo fazer com que ela seja exibida dessa forma…E ainda não consigo converte-la para yyyy-mm-dd.
obrigado.
Eric_Yuzo
Não entendi direito o que você está querendo fazer.
Esses formatos de data são Strings comuns, quando é feito um parse, a String é convertida em um objeto Date, que não possui um formato em específico, apenas atributos que guardam o dia, mês, etc. O formato passado no construtor do SimpleDateFormat serve para dizer como deve ser feita a conversão entre os tipos (String/Date).
Você precisa exibir a data no formato yyyy-MM-dd? Precisa desta data para salvar em um BD? Qual o objetivo da conversão.
D
diegorc85
Velho pode ver se isto te ajuda
apenas um exemplo longo
diegorc85, obrigado pela dica…resolveu um dos meus problemas.
Meu problema agora é que quando eu exibo por exemplo o dia “8”, ele não me retorna o dia como “08”…Como eu faço para adicionar o 0zero na frente do meu dia ???
vejam minha classe Data.
publicclassData{privateintdia,mes,ano;publicvoidsetDataSis(){//seta data sistemaGregorianCalendarcalendario=newGregorianCalendar();dia=calendario.get(calendario.DAY_OF_MONTH);mes=calendario.get(calendario.MONTH)+1;ano=calendario.get(calendario.YEAR);}publicStringgetDataSis()throwsParseException{//retorna a data do sistema//aqui ta o erro, eu quero que exiba 08/11/2010 e ta exibindo 8/11/2010StringdataSis=String.valueOf(dia+"/"+mes+"/"+ano);returndataSis;}publicvoidformataDataBD()throwsParseException{Stringdata=getDataSis();SimpleDateFormatformata=newSimpleDateFormat("yyyy-MM-dd",newLocale("pt_BR"));System.out.println(formata.format(newDate(data)));}
O erro esta no metodo getDataSis(),eu preciso exibir 08 e naum 8…
obrigado.
D
diegorc85
Cara coloca mais ou menos assim.
Pega com substring a posição do dia e da um .length(). Pois com isto vc terá a quantidade de posições no dia.
Caso tenha 1 posição vc concatena 0 se tiver 2 posições deixa passar de boa.
dataSis.substring(0,2).length();
Eric_Yuzo
DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); //dd indica o dia com dois dígitos
String data = df.format(new Date()); //formata a data de hoje
fernandopaiva
Eric…kkkk, com sua dica eu matei 2 coelhos de uma vez só…kkkk !