W tym artykule dowiesz się, jak przekonwertować ciąg znaków na datę w formacie a także przedstawię dokładną praktyczną demonstrację. Poniższe wskazówki zostaną omówione w tym artykule,
- Jak przekonwertować ciąg na datę w Javie?
- Przyjmowanie daty jako tekstu>
- Aby data została sformatowana w postaci „12/12/1988”
- Aby zmienić strefę czasową
Jak przekonwertować ciąg na datę w Javie?
Dowiemy się tutaj „Jak konwertować obiekty String na obiekty Date” przy użyciu prostych zmian w kodzie i technik. Najlepszym sposobem na konwersję jest
Ciąg do daty
SimpleDateFormat.parse (ciąg)
Data na ciąg
SimpleDateFormat.format (data)
Parsowanie działa na różne sposoby:
Przechodząc dalej do tego artykułu o konwersji ciągu na datę w Javie,
Traktując datę jako tekst
Jeśli potrzebujesz miesiąca jako tekstu składającego się z trzech liter, musimy zdefiniować 3 „M”, które jest przyjmowane jako wartość miesiąca. Następnie wartość miesiąca jest interpretowana jako tekst, taki jak październik, grudzień, czerwiec itp.
Aby uzyskać wynik: 12 grudnia 1998 r
Oto kod wyrażający wartość String w formacie Date.
Pakiet 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- yyyy ') String dateInString = '12 -Dec-1998' try {Date date = formatter.parse (dateInString) System.out.println (date) System.out.println (formatter.format (date))} catch (ParseException e ) {e.printStackTrace ()}}}
Wynik:
Piątek, 12 grudnia, 00:00:00 MYT 1998
12 grudnia 1998
Przechodząc dalej do tego artykułu o konwersji ciągu na datę w Javie,
Aby data została sformatowana w postaci „12/12/1988”
pakiet 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 / yyyy ') String dateInString = '12 / 12/1988' try {Date date = formatter.parse (dateInString) System.out.println (date) System.out.println (formatter.format (date))} catch (ParseException e ) {e.printStackTrace ()}}}
Java 8 korzysta z interfejsu API Date-Time, który udostępnia metody parse () do konwersji wartości String na wartość Date-Time. W przypadku podstawowych reguł analizowania zdefiniowano standardy reprezentujące wartość String dla daty i godziny w obu ISO_LOCAL_TIME lub ISO_LOCAL_DATE format. Umieściliśmy kod programu formatującego w blokach „try” i „catch”, który zgłasza wyjątek w czasie wykonywania za każdym razem, gdy zdefiniowana reguła nie zostanie spełniona.
Prosty przykład analizy:
LocalDateTime dateTime = LocalDateTime.parse ('2018-05-05T11: 50: 55')
Przechodząc dalej do tego artykułu o konwersji ciągu na datę w Javie,
Aby zmienić strefę czasową
Aby to zrobić, musimy zdefiniować metody analizy strefy czasowej znane jako „ZonedDateTime”, aby bezpośrednio zmienić wartość ciągu na format daty i godziny. Wszystko, co musisz zrobić, to zdefiniować strefę czasową, w której chcesz ustawić datę i godzinę. Na przykład tutaj potrzebujemy naszej daty i godziny w strefie europejskiej. Dlatego definiujemy strefę czasową jako Europa / Paryż za pomocą metody „ZonedDateTime”:
ZonedDateTime zonedDateTime = ZonedDateTime.parse ('2015-05-05T10: 15: 30 + 01: 00 [Europa / Paryż]')
Przejdźmy teraz do prostoty Date Time API która konwertuje wartość String na wartość Date przy użyciu SimpleDateFormat:
- Java wprowadziła nowy Data i godzina Wywołanie API w wersji 8 reprezentujące parametry daty i godziny znane jako „java.time”. Stare wezwanie we wszystkich poprzednich wersjach do reprezentowania daty brzmiało java.util.date.
Zobaczmy, jak faktycznie przekonwertować String na lokalny typ danych daty i godziny:
prosta implementacja hashmap w java
Przeanalizuj wywołanie interfejsu API:
Jeśli wartość String, którą musimy przekonwertować na Data-godzina type ma format ISO-801, wtedy możemy po prostu wywołać klasy DateFormat i SimpleDateFormat za pomocą metod parse ().
Przykład tego samego:
import java.text.SimpleDateFormat import java.util.Date public class StringToDateExample1 {public static void main (String [] args) rzuca wyjątek {String sDate1 = '31 / 12/1998 'Date date1 = new SimpleDateFormat (' dd / MM / rrrr '). parse (sDate1) System.out.println (sDate1 +' t '+ date1)}}
Wynik:
31.12.1998 Czw 31 grudnia, 00:00:00 IS 1998
import java.text.SimpleDateFormat import java.util.Date public class StringToDateExample2 {public static void main (String [] args) rzuca Wyjątek {String sDate1 = '12 / 10/1988 'String sDate2 = '12 -Paź-1988' Ciąg sDate3 = '12 10, 1988 'String sDate4 =' środa, 12 października 1988 'String sDate5 =' środa, 12 października 1988 23:37:50 'String sDate6 = '31 -Dec-1998 23:37:50' SimpleDateFormat formatter1 = nowy SimpleDateFormat ('dd / MM / yyyy') SimpleDateFormat formatter2 = nowy SimpleDateFormat ('dd-MMM-yyyy') SimpleDateFormat formatter3 = nowy SimpleDateFormat ('MM dd, yyyy') SimpleDateFormat formatter4 = nowy SimpleDateFormat formatter4 = nowy SimpleDateFormat rrrr ') SimpleDateFormat formatter5 = nowy SimpleDateFormat (' E, MMM dd rrrr GG: mm: ss ') SimpleDateFormat formatter6 = nowy SimpleDateFormat (' dd-MMM-yyyy HH: mm: ss ') Date date1 = formatter1.parse (sDate1) Date date2 = formatter2.parse (sDate2) Date date3 = formatter3.parse (sDate3) Date date4 = formatter4.parse (sDate4) Date date5 = formatter5.parse (sDate5) Date date6 = formatter6.parse (sDate6) System.out.println (sDat e1 + 't' + date1) System.out.println (sDate2 + 't' + date2) System.out.println (sDate3 + 't' + date3) System.out.println (sDate4 + 't' + date4) System.out. println (sDate5 + 't' + date5) System.out.println (sDate6 + 't' + date6)}}
Używając powyższego kodu, otrzymujesz wyniki we wszystkich wymienionych formatach. Dlatego zdefiniowaliśmy różne formaty dat w wartości String, a następnie przeanalizowaliśmy je, definiując klasę SimpleDateFormat. Po zakończeniu dane wyjściowe są generowane we wszystkich wymienionych formatach daty i czasu.
31.12.1998 Czw 31 grudnia, 00:00:00 IS 1998
31 grudnia 1998 Czw 31 grudnia, 00:00:00 IS 1998
12 31, 1998 Czw 31 grudnia, 00:00:00 IS 1998
Czw., 31 grudnia 1998 r Czw 31 grudnia, 00:00:00 IS 1998
Czw., 31 grudnia 1998 23:37:50 Czw 31 grudnia 23:37:50 IS 1998
31 grudnia 1998 23:37:50 Czw 31 grudnia 23:37:50 IS 1998
Aby dowiedzieć się więcej o formacie daty, przeczytaj dokument plik javadoc . Oto niektóre z prawidłowych formatów od ciągów do daty:
y = rok (yy lub yyyy)
M = miesiąc (MM)
override vs overload c ++
d = dzień w miesiącu (dd)
h = godzina (0-12) (hh)
H = godzina (0-23) (HH)
m = minuta w godzinie (mm)
s = sekundy (ss)
S = milisekundy (SSS)
z = tekst strefy czasowej (np. czas pacyficzny…)
Z = strefa czasowa, przesunięcie czasu (np. -0800)
Uwaga: Definiowanie „Java.util.date” jako Date date = new date () jest przestarzałe. Dlatego zawsze używaj SimpleDateFormat z pasującym ciągiem wejściowym, który chcesz przekonwertować.
W ten sposób doszliśmy do końca artykułu „Jak przekonwertować ciąg na datę w Javie?”. Jeśli chcesz dowiedzieć się więcej,Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w tym artykule, a skontaktujemy się z Tobą tak szybko, jak to możliwe.