[Resolvido]Como converter String para Date?

Boa Tarde a todos.

Estou usando o seguinte código para fazer a conversão porem ele retorna um valor diferente que eu estou precisando.

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
Date dataFormatadaAbertura = formato.parse(txt_Data_Abertura.getText());

valor que eu passo em String:
10/08/2018
valor que fica no date
Fri Aug 10 00:00:00 BRT 2018

valor que eu quero e o mesmo da entrada só que em date.

Tente essas dicas no StackOverFlow :slight_smile:

primeiro, para de usar date, use LocalDate!

A classe Date já esta descontinuada a muito tempo!

1 curtida

Veja, você tem essa data, o que ocorre é que o objeto Date da classe java.util.Date não tem o formato que você espera ver.
Note que ele apresenta:
Aug: equivalente a agosto ou 08
10: refere-se ao dia do mês, no caso, 10
2018: refere-se ao ano, 2018.
00:00:00: Refere-se a hora, como você não especificou a hora, ele entende que seja meia noite, ou seja, zero hora.
Fri: refere-se ao dia da semana, no caso, sexta-feira.

1 curtida

Você sabe, por acaso, se ele está mexendo com java 8 ou superior ou está mexendo num sistema legado, que usa, por exemplo, java 1.4?

1 curtida

eh java 8 sim porem mudei tudo para LocalDate e usei o link que que @FearX me mandou para tentar fazer a conversão.

porem da o seguinte erro

java.time.fprmat.DateTimeParseException txt ‘10/08/2018’ coould not be parsed at index 0

Vou explicar o meu contexto eu fiz um banco com o campo date e quando eu pego oque o usuário digita pelo gettext vem em String dai tenho que fazer essa conversão.

Existe outra maneira de fazer essa inserção no banco talves eu esteja fazendo da maneira errado ou mais dificil?

Posta o código pra gente te ajudar

1 curtida

O codigo que esta fazendo a conversao e esta com erro eh esse se caso quiser mais algum codigo me fala que eu posto

LocalDateTime datetime = LocalDateTime.parse(txt_Data_Abertura.getText(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"));
String newstring = datetime.format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));

LocalDate datetime = LocalDate.parse(“10/08/2018”, DateTimeFormatter.ofPattern(“dd/MM/yyyy”));
String newstring = datetime.format(DateTimeFormatter.ofPattern(“dd/MM/yyyy”));

@Daniel95 continua com o mesmo erro

Emendando uma pergunta na outra, por qual motivo eu faço uma conversão de String para qualquer outro tipo primitivo?

@ENGENHEIRO_DE_SOFTWA eu criei um banco com um campo tipo Date e eu pego o valor digitado pelo usuário pelo gettext que vem em String so que como o banco esta em date tenho que converter

Acabei de testar o código e está funcionando normal.
Tem certeza que o texto vem neste formato “dd/MM/yyyy”?
E você importou as classes corretamente?

eu acho que não.

LocalDateTime datetime = LocalDateTime.parse("10/08/2018", DateTimeFormatter.ofPattern("dd/MM/yyyy"));
String newstring = datetime.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(newstring);

Este código que você postou não foi o que eu te mandei acima.

o DateTimeFormatter.ofPattern(“dd-MM-yyyy”) precisa corresponder com o mesmo pattern de entrada, que no caso é “dd/MM/yyyy” e não “dd-MM-yyyy”.

eu mudei também só que ta dando outro erro so que mudou

Olhe no primeiro código que eu mandei, ele está utilizando LocalDate e não LocalDateTime, coloque exatamente este código:
LocalDate datetime = LocalDate.parse(txt_Data_Abertura.getText(), DateTimeFormatter.ofPattern(“dd/MM/yyyy”));
String newstring = datetime.format(DateTimeFormatter.ofPattern(“dd/MM/yyyy”));
System.out.println(newstring);

Se no código que eu mandei acima ainda der erro, de um System.out.print no getText e posta o que ele mostra.