Problema com Parse de String to Date

3 respostas
leocol84

Boa tarde, pessoal… gostaria de uma ajuda, pois já procurei em várias referências e não consigo detectar aonde está meu problema…

Date date = null;
		String string = DateUtil.getDate(data, day);
                //string = '2010-11-21' (do jeito que eu preciso)
		DateFormat formatador = new SimpleDateFormat("yyyy-mm-dd");
		try {
			date = formatador.parse(string);
                        //aqui ele me retorna '2010-01-21'
		} catch (ParseException e) {
			date = new Date();
			e.printStackTrace();
		}

		return date;

Explicando… o metódo DateUtil.getDate me retorna a data certa no formato certo que preciso… mas quando eu vou dar o parse para o date, ele sempre retorna ano e dia certo, mas o mês sempre como janeiro (01). Caso queiram ver o método getDate da classe DateUtil, segue abaixo:

public static String getDate(Date data, int Day) {
		Calendar gc = new GregorianCalendar();
		gc.setTime(data);
		return gc.get(Calendar.YEAR)
				+ "-"
				+ StringUtils
						.leftPad((gc.get(Calendar.MONTH) + 1) + "", 2, '0')
				+ "-" + StringUtils.leftPad(Day + "", 2, '0');
	}

Se alguém puder me dar uma luz… agradeço desde já…

3 Respostas

Anime

Oi leocol84 ,

Não entendi bem,mas vê se isso ajuda:

Calendar data = Calendar.getInstance();   
                   
                  SimpleDateFormat format=new SimpleDateFormat("yyyy/MM/dd");
                  String h=format.format(data.getTime());
jpjcjbr

Oi leocol84,

Aconselho você a consultar a documentacao dos formatadores de data para saber os caracteres corretos a serem utilizados na conversao.

Link: http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

Você está usando o pattern “yyyy - mm - dd”, mas a representação correta para mês deve ser MM e não mm, segundo a tabela no link que eu passei o “mm” significa a representacao de minutos de uma hora.

Espero ter ajudado.

Abs

leocol84

Valeu, jpjcjbr!

O problema realmente era o yyyy-mm-dd…

[]'s

Criado 21 de outubro de 2010
Ultima resposta 22 de out. de 2010
Respostas 3
Participantes 3