sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo convertir una secuencia de caracteres en un formato de fecha para almacenar en la base de datos?

Aquí hay un ejemplo que funciona con sus casos de prueba:

import java.text.SimpleDateFormat;  
import java.util.Date;  
public class StringToDateExample1 {  
    public static void main(String[] args)throws Exception {  
        String sDate1="20200913204839";  
        Date date1=new SimpleDateFormat("yyyyMMddhhmmss").parse(sDate1);  
        System.out.println(date1);
    }  
}  

Con caso de prueba 20200913204839 devuelve:

Sun Sep 13 20:48:39 UTC 2020

Esto es lo que significan los caracteres en SimpleDateFormat:

yyyy significa un año (Ejemplo:2020)

MM significa un mes (Ejemplo:julio, agosto)

dd significa un día en un mes (Ejemplo:15)

HH significa una hora en un día (Ejemplo:20)

mm y ss significan minutos y segundos respectivamente (Ejemplo:52:34)

No tiene que ser una Fecha, solo una Cadena funciona bien.

Y sí, usar SimpleDateFormat funciona bien.

EDITAR:formato específico

Lo he formateado específicamente para su caso:

import java.text.SimpleDateFormat;  
import java.util.Date;  
public class StringToDateExample1 {  
    public static void main(String[] args)throws Exception {  
        String sDate1="20200913204839";  
        Date date1=new SimpleDateFormat("yyyyMMddhhmmss").parse(sDate1);
        String formatted = new SimpleDateFormat("dd-EE-yyyy hh:mm:ss").format(date1);
        System.out.println(formatted);
    }  
} 

Primero analizamos la Cadena en una fecha, a partir de la cual podemos formatear.

Un caso de prueba 20200913204839 devuelve:

13-Sun-2020 08:48:39