String para Data

Como eu posso fazer para ao usuário digitar 15/05/2004 ser convertido para a variavel data1 (java.util.Date) ???

Explicando melhor, quero que o usuário através de um JOptionPane me informe uma data, e a partir dela eu trabalherei com calculo de data mas para isso tenho que passar a data para um variavel do tipo java.util.Date

Valew

Dê uma olhada nessa documentação…

http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

Procure também nos tutorias do guj, se eu não me engano tem alguma coisa sobre isso lá também…

Já fiz assim:

Calendar calendar = Calendar.getInstance();
String source = dataTextField.getText();  //source = "dd/MM/yy"
int y1 = Integer.parseInt(source.substring(6));
int y2 = Integer.parseInt(source.substring(6));
int m1 = Integer.parseInt(source.substring(3, 5));
int m2 = Integer.parseInt(source.substring(3, 5));
int d1 = Integer.parseInt(source.substring(0, 2));
int d2 = Integer.parseInt(source.substring(0, 2));
calendar.set(y1, m1, d1);
Date date = calendar.getTime();

:smiley:

Este é um exemplo antigo que achei nas minhas coisas. O segredo é o “setLenient(false)” que irá forçar uma ParseException se a data for algo como “32/02/2004” (não existe o dia 32 de fevereiro em ano nenhum, mas se você não usar setLenient, ele vai entender que é 03/03/2004)

import java.util.*;
import java.text.*;

public class Test6 {
    static DateFormat df;
    static {
        df = new SimpleDateFormat ("dd/MM/yyyy");
        df.setLenient(false);
    }
    
    public String normalize (String ddmmyyyy) throws ParseException {
        Date dt = df.parse (ddmmyyyy);
        return df.format(dt);
    }
    
	public static void main(String[] args) throws Exception {
	    Test6 t = new Test6();
	    System.out.println (t.normalize ("15/05/2004"));
	}
}

É verdade, pra que usar a API né? :smiley:

VAlewwwwwww