sql >> Databasteknik >  >> RDS >> Oracle

Hur konverterar man en sekvens av tecken till ett datumformat för att lagra i databasen?

Här är ett exempel som fungerar med dina testfall:

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

Med testfall 20200913204839 den returnerar:

Sun Sep 13 20:48:39 UTC 2020

Så här betyder tecknen i SimpleDateFormat:

yyyy betyder ett år (Exempel:2020)

MM betecknar en månad (exempel:juli, augusti)

dd betyder en dag i en månad (exempel:15)

HH betyder en timme på en dag (exempel:20)

mm och ss beteckna minuter respektive sekunder (Exempel:52:34)

Det behöver inte vara ett datum - bara en sträng fungerar bra.

Och ja - att använda SimpleDateFormat fungerar alldeles utmärkt.

EDIT:Specifik formatering

Jag har formaterat det specifikt för ditt fall:

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

Vi analyserar först strängen till ett datum, från vilket vi kan formatera.

Ett testfall 20200913204839 returnerar:

13-Sun-2020 08:48:39


  1. MySQL :transaktion inom en lagrad procedur

  2. Anropa lagrad procedur med ADODB i PHP

  3. Begränsa ConnectionTimeout för Oracle Database

  4. mysql räkna rader med loop