SimpleDateFormat("yyyy-MM-dd"), data desconfigurada

Pessoal , estou tentando fazer o formato da data da seguinte forma :slight_smile:

	public static void main(String[] args) {
		String data = "15-01-2019";
		
		Date d = formataDataYYYY_MM_DD(data);
		
		System.out.println(d);
	}
	
	public static Date formataDataYYYY_MM_DD(String dataStr) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		java.sql.Date data;
		try {
			data = new java.sql.Date(format.parse(dataStr).getTime());
			return data;
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}

Porém esta saindo assim : 0020-07-11

Alguém pode me ajudar ?

inverte o SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”); para
SimpleDateFormat format = new SimpleDateFormat(“dd-MM-yyyy”);

mas eu gostaria nesse formato: yyyy-MM-dd, como poderia fazer ??

A classe Date do pacote java.sql já mantém correspondência com o padrão de data ISO, ou seja, aquele usado como padrão do SQL, conforme sustenta a documentação (Oracle Docs - java.sql.Date). Então sugiro, a título de exemplo:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.ParseException;

public class ManipuladorData {
	private java.sql.Date converteStringData(String dataInformada){
			String template = "dd/MM/yyyy";
			Date dataUtilDate;
			java.sql.Date dataSQL = null;
			
			try{
					SimpleDateFormat sdf = new SimpleDateFormat(template);
					dataUtilDate = sdf.parse(dataInformada);
					dataSQL = new java.sql.Date(dataUtilDate.getTime());
					
			}catch(ParseException pex){
					System.out.println("ERRO [" + pex.getMessage() + "]: Impossível "
						+ "efetuar a conversão da string!");
			}
			return dataSQL;
	}
	
	public static void main(String[] args){
			ManipuladorData manipulador = new ManipuladorData();
			System.out.println(manipulador.converteStringData("15/01/2019"));
	}
}

Teste:

image

String data = "15-01-2019";

Você mesmo está fornecendo a data no padrão diferente do que você especificou, se quer no formato “yyyy-MM-dd”, deveria ser “2019-01-15”.