Re:Converter String para Date formatado

5 respostas
marciobarroso

Se vc esta usando a mascara :

yyyy/MM/dd

a entrada deve ser neste formato, senão ira gerar uma excecão.

Este meu método faz exatamente o q vc quer :

public static Date parseStringToDate(String date, String format) {

		Pattern pattern = Pattern.compile(format);
		Matcher matcher = pattern.matcher(date);
		if (matcher.matches()) {
			try {
				return new SimpleDateFormat(format).parse(date);
			} catch (ParseException e) {
				return null;
			}
		}
		return null;
	}

[]'s

5 Respostas

marciobarroso

Faça assim :

public static void main (String args []){
 		try{
 			
 			String data = "1995/10/01";
                        String format = "yyyy/MM/dd";
 
                        SimpleDateFormat dataSQL1 = new SimpleDateFormat(format);

                        System.out.println(dataSQL1.parse(data);
               }catch(Exception e){
 			System.out.println(e.getMessage());
 	       }
}

[]'s

Barroso
import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class ComparaData {

/**
 * @param args
 * @throws ParseException 
 */
public static void main(String[] args) throws ParseException {
	SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
//		Transforma uma String em um Date

Date base = formatador.parse(29/01/2007);

Date hoje= new Date();

// Calcula a diferença em milisegundos entre as duas datas
long dif = hoje.getTime() - base.getTime();

//		divide a diferença pelo numero de milisegundos de 1 dia, que seria 86400000

long dias = dif/(1000L<em>60</em>60<em>24);

long horas = dif/(1000L</em>60<em>60);

long minutos = dif/(1000L</em>60);
System.out.println("Data Atual: " + hoje);
	System.out.println("Data FORMATADA: " + formatador.format(base));
	System.out.println("Dif. em Dias: " + dias);
	System.out.println("Dif. em Horas: " + horas);
	System.out.println("Dif. em Minutos: " + minutos);
}

}

everson_z

Preciso converter Strings em Datas... esse codigo me retorna 1969/12/31 mas, deveria ser 10/10/95

public static void main (String args []){
		try{
			
			String data = "10/10/95";
			SimpleDateFormat dataSQL1 = new SimpleDateFormat("yyyy/MM/dd");
	  		dataSQL1.format(new Date());
	  		
	  		System.out.println(dataSQL1.format(data));
	  		 
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
everson_z

Como todos os codigo informados dão erro comigo??? Preciso de tudo isso dentro do Main.

public static void main (String args []){
		try{
			
			String data = "10/10/95";
			SimpleDateFormat dataSQL1 = new SimpleDateFormat("yyyy/MM/dd");
	  		dataSQL1.format(new Date());
	  		
	  		System.out.println(dataSQL1.format(data));
	  		
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}

Algo + ou - assim

everson_z

O codigo abaixo esta imprimindo no formato errado… deveria sair no formato da string data mas, esta saindo Fri Oct 05 00:00:00 BRT 2007
[color=red]Como sair 2007/10/05[/color]

public static void main(String[] args) {
		try {
			String data = "05/10/2007";
			String format = "yyyy/MM/dd";
			SimpleDateFormat dataSQL1 = new SimpleDateFormat(format);
			System.out.println(dataSQL1.parse(data));
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
Criado 9 de março de 2007
Ultima resposta 11 de mar. de 2007
Respostas 5
Participantes 3