Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment convertir une séquence de caractères en un format de date à stocker dans la base de données ?

Voici un exemple qui fonctionne avec vos scénarios de test :

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);
    }  
}  

Avec cas de test 20200913204839 il renvoie :

Sun Sep 13 20:48:39 UTC 2020

Voici ce que signifient les caractères dans SimpleDateFormat :

yyyy signifie une année (Exemple :2020)

MM signifie un mois (Exemple :juillet, août)

dd signifie un jour dans un mois (Exemple :15)

HH signifie une heure dans une journée (Exemple :20)

mm et ss signifient respectivement les minutes et les secondes (Exemple :52:34)

Il n'est pas nécessaire que ce soit une date - juste une chaîne fonctionne bien.

Et oui - l'utilisation de SimpleDateFormat fonctionne très bien.

EDIT :Mise en forme spécifique

Je l'ai formaté spécifiquement pour votre cas :

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);
    }  
} 

Nous analysons d'abord la chaîne en une date, à partir de laquelle nous pouvons formater.

Un cas de test 20200913204839 renvoie :

13-Sun-2020 08:48:39