Sadržaj
Rad s datumima oduvijek je bio prekretnica u karijeri programera. To je dijelom i zato što su u ranijim verzijama Java bilo je pomalo zbunjujuće i nedosljedno. Međutim, u novoj verziji a API to nam omogućuje da izvučemo najviše iz jezika jasnijim i lakšim metodama.To čini rad s formati datuma i vremena u Java nemoj biti mučenje. Za to moramo proučiti nove oblike i mogućnosti koje nam jezik pruža, s ciljem da jednu od točaka koja stvara najveću zabunu, pretvorimo u nešto čime pravilno ovladamo.
Radi pojednostavljenja rada, razvojni tim Java nam je pružio niz uobičajenih metoda koje možemo koristiti, kako u radu datumi, kao kad radimo s sati. To smanjuje napor učenja zbog sličnog ponašanja za obje vrste objekata.
U nastavku ćemo navesti neke od metoda koje se najviše ističu zajedno s malim objašnjenjem za što ih možemo koristiti, s time možemo imati opću ideju kada kasnije pređemo na praktični dio.
naOva metoda nam omogućuje da napravimo kombinaciju objekta koji ga doziva s drugim objektom.
formatOmogućuje nam da pomoću nekih parametara proizvedemo kao rezultat datum ili vrijeme s određenim formatom koji nam je potreban.
dobitiOmogućuje nam dobivanje elementa koji navedemo.
jeOmogućuje nam provjeru je li objekt tipa s kojim pravimo usporedbu.
plusDaje nam mogućnost dodavanja dodatka objektu koji ga poziva i vraća njegovu kopiju s već dodanom vrijednošću.
doOmogućuje nam pretvorbu iz jedne vrste u drugu.
Sada sa ovim znanjem možemo prijeći na druga pitanja u okviru te iste teme o datumima i vremenima u Java.
Kao što smo objašnjavali oblike koji se koriste u Java Sada su se promijenili za novu verziju, zato za ponavljanje primjera koje ćemo dati potrebna nam je verzija 8 kompleta za razvoj jezika, inače ćemo primiti pogrešku poput ove:
Pojasnili smo točku, pogledajmo u nastavku što moramo učiniti kako bismo dobili informacije o trenutni datum i vrijeme na Javi.
Za to ćemo stvoriti klasu u kojoj ćemo instancirati objekte tipa LocalDate, Lokalno vrijeme Y LocalDateTime. Svaki od njih će nam dati trenutni datum, trenutno vrijeme i trenutni datum i vrijeme.
To je vrlo korisno u takvim slučajevima zapisnici sustava, gdje moramo uhvatiti točan trenutak u kojem se radnja poduzima ili se događa događaj koji nas zanima zabilježiti. Da bismo postigli cilj, možemo napraviti kod sličan sljedećem:
uvoz java.time. *; javna klasa CurrentDate {public static void main (String [] args) {LocalDate currentDate = LocalDate.now (); System.out.println (currentDate); LocalTime currentTime = LocalTime.now (); System.out.println (trenutno vrijeme); LocalDateTime sada = LocalDateTime.now (); System.out.println (sada); }}
Kao što vidimo, sve što radimo je deklarirati naše objekte gore navedenih tipova i dodijeliti im vrijednost koja se vraća metodom sada (), koji je zaista zadužen za davanje trenutnog datuma i vremena, tada brinemo samo o ispisu svakog od deklariranih objekata.
VažnoVrlo je važno uključiti paket java.vreme u cijelosti kako bismo mogli pristupiti svim funkcijama koje koristimo, također ako sumnjamo u službenu dokumentaciju možemo pronaći više detalja o mogućnostima istih.
Pogledajmo kako izgleda izvršavanje našeg programa:
Drugi aspekt koji uvijek moramo uzeti u obzir je način prikazivanja informacija. Što se tiče datuma, imamo mnogo načina, međutim neki su u nekim situacijama prikladniji od drugih. Ovo nas većinu vremena dovodi do izvođenja dodatnih operacija koje nas tjeraju da napišemo dodatne retke koda, koji u Java 8 to više nije tako složeno.
Ovisno o aplikaciji koju razvijamo, htjet ćemo prikazati mjesec po broju u kalendaru ili po imenu, ali naziv može biti potpun ili skraćen, kao i dan ili godina, sve nam to daje vrlo velik broj opcija, sve jednako valjane. Za rješavanje ovog problema možemo koristiti oblikovač datuma.
Za oblikovanje datuma imamo neke zamjenske znakove ili parametre koji nam omogućuju dobivanje vrijednosti objašnjenih u prethodnom odlomku. Pogledajmo koji su najvažniji.
- Y, omogućuje nam pristup godini u četvero- ili dvoznamenkastom formatu (2014. ili 14.).
- D, omogućuje nam da dobijemo broj dana u godini (225).
- d, Za razliku od prethodnog, vraća broj dana u dotičnom mjesecu (27).
- L, pomaže nam da dobijemo mjesec u godini u brojčanom obliku, M daje nam mjesec u tekstu.
- H, daje nam vremena.
- s, daje nam sekunde.
- m, omogućuje nam dobivanje zapisnika.
- do, daje nam am ili pm sata.
- z, omogućuje nam pristup imenu vremenske zone.
uvoz java.time. *; uvoz java.time.format. *; javna klasa DateFormatter {public static void main (String [] args) {DateTimeFormatter formatirani datum = DateTimeFormatter.ofPattern ("gggg / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", Formatirani datum)); DatumTimeFormatter vremenska zona = DateTimeFormatter.ofPattern ("d MMMM, gggg h: mm a"); System.out.println (ZonedDateTime.now (). Format (vremenska zona)); }}
Prvo što možemo istaknuti je da moramo uvesti oba paketa java.vreme sa svim svojim klasama kao paketom java.time.format sa svim svojim razredima. Vježbu je moguće izvesti uvozom određenih razreda, ali to ostavljamo kao domaću zadaću, pa i oni imaju zadatak vidjeti službenu dokumentaciju.
Zatim vidimo da stvaramo objekt tipa DateTimeFormatter i koristimo metodu ofPattern () koji prihvaća navedene zamjenske znakove, vidimo da zamjenske znakove postavljamo u dva primjerka kao gggg za dobivanje četiri znamenke tekuće godine ili također mm za dobivanje dvije znamenke minuta.
Na kraju ispisujemo svaki datum s njegovim formatima i dobivamo sljedeće kada izvršavamo naš program:
Ovdje možemo promatrati sve promjene koje smo unijeli u način oblikovanja datuma, čime mu možemo dati veće značenje i čitljivost kako na ljudskoj razini, tako i za strojeve Baza podataka Što MySQL morate dobiti zadani datum u formatu gggg-LL-dd.
Još jedna upotreba koju možemo dati novim razredima datuma i vremena Java biti u mogućnosti koristiti datume koji dolaze iz tekstualnog niza, koje može stvoriti korisnik, dolaze iz tekstualne datoteke itd. No važno je da s njima moramo manipulirati i za to možemo upotrijebiti sve alate koji su nam pri ruci.
Pogledajmo u sljedećem kodu kako, koristeći ono što smo vidjeli, možemo izmijeniti datum iz tekstualnog niza.
uvoz java.time. *; uvoz java.time.format. *; javna klasa StaticDate {public static void main (String [] args) {String StartDate = "1906-12-31"; LocalDate takenDate = LocalDate.parse (startDate); System.out.println ("Datum:" + TakenDate); String dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Datum / vrijeme:" + datumTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "S novim formatom:" + df.format (TakenDate)); }}
U kodu vidimo kako stvaramo početni datum u tekstualnom nizu, a zatim s objektom tipa LocalDate koristimo metodu Raščlaniti za ugradnju tekstualnog niza u objekt tipa datuma, tada ispisujemo objekt i vidimo da ako je datum ispravno uzet, ponavljamo isti postupak, ali koristeći datum i vrijeme s LocalDateTime.
Konačno, uzimamo naš prvi stvoreni objekt i na njega primjenjujemo novi format, čime potvrđujemo da smo uspjeli unijeti i manipulirati datumom koji smo utvrdili iz tekstualnog niza. Pogledajmo kako to izgleda kada pokrenemo naš program:
Ovim smo završili ovaj vodič, naučili smo raditi s datumima u Java koristeći poboljšanja u klasama koje nova verzija uključuje, što je Java 8To se može koristiti za mnoge aplikacije na razini sustava, pa čak i za korisnička sučelja.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod