sql >> Database >  >> RDS >> Oracle

Hoe converteer je een reeks karakters naar een datumformaat om op te slaan in de database?

Hier is een voorbeeld dat werkt met uw testgevallen:

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

Met testcase 20200913204839 het keert terug:

Sun Sep 13 20:48:39 UTC 2020

Dit is wat de tekens in SimpleDateFormat betekenen:

yyyy betekent een jaar (voorbeeld:2020)

MM betekent een maand (voorbeeld:juli, augustus)

dd betekent een dag in een maand (voorbeeld:15)

HH betekent een uur in een dag (voorbeeld:20)

mm en ss betekenen respectievelijk minuten en seconden (voorbeeld:52:34)

Het hoeft geen datum te zijn - alleen een string werkt prima.

En ja - het gebruik van SimpleDateFormat werkt prima.

BEWERK:specifieke opmaak

Ik heb het speciaal voor jouw geval geformatteerd:

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

We ontleden eerst de String in een datum, van waaruit we kunnen formatteren.

Een testcase 20200913204839 retourneert:

13-Sun-2020 08:48:39


  1. getdate() in mysql

  2. Hoe de update-query op een enorme tafel te versnellen?

  3. Laravel 5.4 upgrade, converteren naar utf4mb van utf8

  4. NVL gebruiken voor meerdere kolommen - Oracle SQL