Problema de formato de fecha usando LocalDate

Necesito convertir un Date object(muestra esto en modo de depuración ---> "Lun Sep 23 00:00:00 EDT 2019") a otro que Date objecttenga el formato "aaaa-MM-dd".

Intenté el siguiente código, pero aparece un error de tiempo de ejecución que dice:

java.time.format.DateTimeParseException: el texto 'Lun Sep 23 00:00:00 EDT 2019' no se pudo analizar en el índice 0.

LocalDate localDate = LocalDate.parse(date.toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Date result = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

¡Gracias por tu ayuda!.

Respuesta 1

Su error

Lo que ve en el depurador está formateado por un formateador personalizado de su IDE. Date.toString()Tiene su propio formato. Sin embargo, debe usar métodos de conversión de Java para cambiar entre la fecha y la fecha local

Aquí hay una excepción en date.toString():

El método toString () de la clase Java Date convierte este objeto de fecha en una Cadena en forma "dow mon dd hh: mm: ss zzz aaa". Este método anula toString en el objeto de clase.

Fuente

El patrón "yyyy-MM-dd"no es compatible con esto.

¿Por qué haces esto sin embargo? Hay mejores formas de convertir a Dateen a LocalDate.

Convertir fecha a fecha local (y viceversa)

Intenta lo siguiente:

public LocalDate convertToLocalDateViaInstant(Date dateToConvert) {
    return dateToConvert.toInstant()
      .atZone(ZoneId.systemDefault())
      .toLocalDate();
}

public Date convertToDateViaSqlDate(LocalDate dateToConvert) {
    return java.sql.Date.valueOf(dateToConvert);
}

Fuente

Respuesta: 2

Tengo este código scala que devuelve un iterador vacío val i = ServiceLoader.load (Class.forName ("io.grpc.netty.NettyChannelProvider"), classOf [ManagedChannelProvider] .getClassLoader) que es ...

Bueno, estoy tratando de convertir mi lista de objetos en una clase y obtengo el error anterior (detalles completos del error a continuación). Miré a mi alrededor e intenté sugerencias, pero no veo nada malo. He intentado ...

Actualmente tengo el siguiente código, donde trato de transmitir de Objeto a Cadena y recibo un error de excepción. ¿Cuál es la mejor manera de convertir de esta matriz de objetos a una matriz de cadenas para que ...

timer.scheduleAtFixedRate (function_to_execute, 0, 5000); Había leído el ejemplo anterior, pero me gustaría iniciar la función en una fecha y hora específicas como 2013/01/13, 13:15 pm. Cómo configurar el temporizador ...