Denne artikel vil introducere dig til måder, hvorpå du kan konvertere streng til dato i og også give dig en grundig praktisk demonstration. Følgende punkter vil blive dækket i denne artikel,
- Sådan konverteres String til Date i Java?
- Tager datoen som en tekst>
- For at få datoen formateret i formen “12/12/1988”
- For at ændre tidszonen
Sådan konverteres String til Date i Java?
Vi lærer her 'Sådan konverteres strengobjekter til datoobjekter' ved hjælp af enkle kodeændringer og teknikker. Den bedste måde at konvertere på er
String to Date
SimpleDateFormat.parse (streng)
Dato til streng
SimpleDateFormat.format (dato)
Analyse fungerer på forskellige måder:
Gå videre med denne artikel om Konverter streng til dato i Java,
Tager datoen som en tekst
Hvis du har brug for måneden som en tekst med tre bogstaver, skal vi definere 3 'M', der tages som månedsværdien. Derefter fortolkes månedens værdi som tekst som oktober, december, juni osv.
For at få resultatet: 12. december 1998
Her er koden til at udtrykke strengværdien i datoformatet.
Pakke com.test.test import java.text.ParseException import java.text.SimpleDateFormat import java.util.Date public class TestDateExample1 {public static void main (String [] argv) {SimpleDateFormat formatter = new SimpleDateFormat ('dd-MMM- åååå ') String dateInString = '12 -Dec-1998' prøv {Date date = formatter.parse (dateInString) System.out.println (date) System.out.println (formatter.format (date))} catch (ParseException e ) {e.printStackTrace ()}}}
Produktion:
Fre 12 december 00:00:00 MYT 1998
12. december 1998
Gå videre med denne artikel om Konverter streng til dato i Java,
For at få datoen formateret i formen “12/12/1988”
pakke com.test.date import java.text.ParseException import java.text.SimpleDateFormat import java.util.Date public class TestDateExample2 {public static void main (String [] argv) {SimpleDateFormat formatter = new SimpleDateFormat ('dd / MM / åååå ') String dateInString = '12 / 12/1988' prøv {Date date = formatter.parse (dateInString) System.out.println (date) System.out.println (formatter.format (date))} catch (ParseException e ) {e.printStackTrace ()}}}
Java 8 bruger Date-Time API, der giver parse () -metoder til at konvertere strengværdien til værdien Date-Time. For grundlæggende parseringsregler er der defineret standarder, der repræsenterer strengværdien for datoen og klokkeslættet i begge ISO_LOCAL_TIME eller ISO_LOCAL_DATE format. Vi sætter formatteringskoden i 'prøve' og 'fangst' -blokken, der kaster en undtagelse ved kørsel, hver gang den definerede regel ikke er opfyldt.
Eksempel på enkel parsing er:
LocalDateTime dateTime = LocalDateTime.parse ('2018-05-05T11: 50: 55')
Gå videre med denne artikel om Konverter streng til dato i Java,
For at ændre tidszonen
For at gøre det er vi nødt til at definere tidszoneringsmetoderne kendt som 'ZonedDateTime' for direkte at ændre strengværdien til dato-tidsformat. Alt du skal gøre er at definere den tidszone, hvor du vil have din dato-tid. For eksempel har vi her brug for vores dato og tidspunkt i den europæiske zone. Så vi definerer tiemzone som Europa / Paris ved hjælp af 'ZonedDateTime'-metoden:
ZonedDateTime zonedDateTime = ZonedDateTime.parse ('2015-05-05T10: 15: 30 + 01: 00 [Europe / Paris]')
Lad os nu tage det enkle Dato Tid API som konverterer strengværdien til datoværdien ved hjælp af SimpleDateFormat:
flet sorter c ++ kildekode
- Java introducerede et nyt Dato tid API-opkald med sin version 8 til at repræsentere dato-tidsparametrene kendt som “java.time”. Det gamle opkald i alle de tidligere versioner til at repræsentere datoen var java.util.date.
Lad os se, hvordan du faktisk konverterer en streng til en lokal datatype for dato og klokkeslæt:
Parse API-opkaldet:
Hvis den strengværdi, som vi skal konvertere til Dato tid typen er af ISO-801-format, så kan vi simpelthen ringe til DateFormat- og SimpleDateFormat-klasser ved hjælp af parse () -metoder.
Et eksempel på det samme:
import java.text.SimpleDateFormat import java.util.Date public class StringToDateExample1 {public static void main (String [] args) throw Exception {String sDate1 = '31 / 12/1998 'Date date1 = new SimpleDateFormat (' dd / MM / åååå '). parse (sDate1) System.out.println (sDate1 +' t '+ dato1)}}
Produktion:
31/12/1998 Thu Dec 31 00:00:00 IS 1998
import java.text.SimpleDateFormat import java.util.Date public class StringToDateExample2 {public static void main (String [] args) throw Exception {String sDate1 = '12 / 10/1988 'String sDate2 = '12 -Oct-1988' String sDate3 = '12 10, 1988 'Streng sDate4 =' Ons 12. oktober 1988 'Streng sDate5 =' Ons 12. oktober 1988 23:37:50 'Streng sDate6 = '31 -Dec-1998 23:37:50' SimpleDateFormat formatter1 = ny SimpleDateFormat ('dd / MM / åååå') SimpleDateFormat formatter2 = ny SimpleDateFormat ('dd-MMM-åååå') SimpleDateFormat formatter3 = ny SimpleDateFormat ('MM dd, åååå') SimpleDateFormat formatter4 = ny SimpleDateFat MM åååå ') SimpleDateFormat formatter5 = ny SimpleDateFormat (' E, MMM dd åååå HH: mm: ss ') SimpleDateFormat formatter6 = ny SimpleDateFormat (' dd-MMM-åååå HH: mm: ss ') Dato dato1 = formatter1.parse (sDate1) Dato dato2 = formatter2.parse (sDate2) Dato date3 = formatter3.parse (sDate3) Dato date4 = formatter4.parse (sDate4) Dato date5 = formatter5.parse (sDate5) Dato date6 = formatter6.parse (sDate6) System.out.println (sDat e1 + 't' + dato1) System.out.println (sDate2 + 't' + date2) System.out.println (sDate3 + 't' + date3) System.out.println (sDate4 + 't' + date4) System.out. println (sDate5 + 't' + dato5) System.out.println (sDate6 + 't' + dato6)}}
Ved at bruge ovenstående kode får du faktisk resultaterne i alle de nævnte formater. Så vi definerede de forskellige datoformater i en strengværdi, og derefter analyserede vi dem ved at definere SimpleDateFormat-klassen. Når det er gjort, genereres output i alle de nævnte datoformater.
31/12/1998 Thu Dec 31 00:00:00 IS 1998
31. december 1998 Thu Dec 31 00:00:00 IS 1998
12 31. 1998 Thu Dec 31 00:00:00 IS 1998
Tor, 31. december 1998 Thu Dec 31 00:00:00 IS 1998
Tor, 31. december 1998 23:37:50 Tor 31. december 23:37:50 ER 1998
31. december 1998 23:37:50 Tor 31. december 23:37:50 ER 1998
Hvis du vil vide mere om datoformatet, skal du læse dokumentet javadoc . Nogle af de gyldige String to Date-formater er nævnt her:
y = år (åå eller åååå)
M = måned (MM)
d = dag i måned (dd)
h = time (0-12) (tt)
H = time (0-23) (HH)
m = minut i time (mm)
s = sekunder (ss)
S = millisekunder (SSS)
z = tidszonetekst (f.eks. Pacific Standard Time ...)
Z = tidszone, tidsforskydning (f.eks. -0800)
Bemærk: Definition af 'Java.util.date' som dato dato = ny dato () er udfaset. Så brug altid SimpleDateFormat med en matchende inputstreng, som du skal konvertere.
Således er vi nået til slutningen af denne artikel om 'Sådan konverteres streng til dato i Java?'. Hvis du ønsker at lære mere,tjek den af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.
Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel, og vi vender tilbage til dig hurtigst muligt.