Problema com Date, SimpleDateFormat

10 respostas
java
L

Pessoal é o seguinte, Estou tentando pegar uma data digitada, e converter o mês em numero para o nome.
Por exemplo, digitar 10/02/2014, e transformar isso em 10/fevereiro/2014.

// MEU MÉTODO AQUI ESTÁ FUNCIONANDO DO JEITO QUE EU QUERIA, SÓ QUE ESTÁ PEGANDO A DATA DE HOJE

public static String mesData (String dt) throws ParseException{

SimpleDateFormat dtformatada = new SimpleDateFormat(dd.MMMM.yyyy;

Date data = new Date();

String formatada = dtformatada.format(data);

return formatada;
}

E AQUI É DO JEITO QUE ESTOU TENTANDO PEGAR UMA DATA DIGITADA

String data;

data = JOptionPane.showInputDialog(“Informe a Data”);

public static String mesData (String dt) throws ParseException{

SimpleDateFormat dtformatada = new SimpleDateFormat(dd.MMMM.yyyy;

Date data = dtformatada.parse(dt);

String formatada = dtformatada.format(data);

return formatada;
}

E DA O SEGUINTE ERRO: Exception in thread “main” java.text.ParseException: Unparseable date: “data que eu digitei”

ALGUEM PODE ME AJUDAR COMO RESOLVER ISSO?

10 Respostas

V

Boa tarde amigo,
Para fazer o parse use a classe DateFormat, como no exemplo abaixo:

Date data = DateFormat.getDateInstance().parse("10/11/2012");

SimpleDateFormat formatador = new SimpleDateFormat("dd MMMM yyyy"):

String dataFormatada = formatador.format(data);
L

Boa tarde Victor

fiz o que você sugeriu mas continua o mesmo erro

Exception in thread “main” java.text.ParseException: Unparseable date: “data informada”

V

Poderia colocar seu código refeito e a String que vc esta tentando formatar?

L

String data;

// estou tentando pegar essa data digitada pra formatar
data = JOptionPane.showInputDialog(“Informe a Data”);

// aqui é meu método

public static String mesData (String dt) throws ParseException{

SimpleDateFormat dtformatada = new SimpleDateFormat(dd.MMMM.yyyy);

Date data = DateFormat.getDateInstance().parse(dt);
String formatada = dtformatada.format(data);

    return formatada;
}
M
import java.text.<em>;

import javax.swing.</em>;

import java.util.*;

class Teste {

public static void main (String [] args) {
	try {
		String data = JOptionPane.showInputDialog("Informe a Data");
		System.out.println(mesData(data));
		
	} catch (ParseException e) {
		e.printStackTrace();
	}

}

public static String mesData (String dt) throws ParseException{ 
	//primeiramente vc deve converter a data informada em Date com 
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
	Date date = sdf.parse(dt);
	
	//depois formata para o formato desejado
	SimpleDateFormat dtformatada = new SimpleDateFormat("dd.MMMM.yyyy"); 

	String formatada = dtformatada.format(date);

	return formatada; 
}

}

V

O código esta correto, o problema deve ser o formato da data que vc esta inserindo, ao digitar a data vc esta colocando no formato dd/MM/yyyy?

L

Valeu mano, esse código deu certo!

L

eu colocava tipo uma data normal, 10.03.2014, precisava informar algum formato???

I

Voce informa o formato data de acordo com seu parse.
Até pq se no digite sua data, se vc coloca “hoje”, é evidente que vai não funcionar

V

Bom dia cara, então esse era o problema, com o dateformat vc teria que informar a data neste padrão 10/11/2012 por exemplo, mas que bom que conseguiu resolver o problema
Abraço

Criado 16 de março de 2016
Ultima resposta 17 de mar. de 2016
Respostas 10
Participantes 4