Intuitiv bibliotecă, robust pentru ori și datele, în cele din urmă a apărut în

Intuitiv bibliotecă, robust pentru ori și datele, este în cele din urmă în Java (partea 1).

În cele din urmă, în Java era intuitivă metodă, fiabilă de lucru cu datele și orele.
data și ora sunt principii fundamentale în multe aplicații. Astfel de lucruri diferite ca data nașterii, termenii de închiriere, evenimentele și orele de deschidere ale magazinului sunt toate bazate pe datele și orele, dar Java SE nu oferă o modalitate convenabilă de a lucra cu ei. Incepand cu Java SE 8. apărut set de pachete java.time - care oferă un API bine structurat pentru a lucra cu datele și orele.

preistorie
New java.time API-ul conține 5 pachete:
  • java.time - pachet de bază care conține obiecte pentru a stoca valori
  • java.time.chrono - oferă acces la diferitele calendare
  • java.time.format - recunoașterea și formatarea datei și a orei
  • java.time.temporal - biblioteci de nivel scăzut și funcționalitatea avansată
  • java.time.zone - clase pentru lucrul cu fusuri orare
Cele mai multe dezvoltatorii vor folosi în principal pachetul de bază și formatarea, și, eventual, java.time.temporal. Astfel, în ciuda faptului că 68 de noi tipuri de dezvoltatori vor folosi nu mai mult de o treime din ele au fost adăugate.

În exemplul nostru, putem vedea data creată cu metoda Factory (toți constructorii privați). Apoi vom cere o parte din obiectul de date. Vă rugăm să rețineți că transferurile Luna și DAYOFWEEK create pentru a face codul mai ușor de citit și de încredere.
În exemplul următor vom vedea cum se modifica data. Deoarece clasa imuabil, rezultatul va fi noi facilități, și va rămâne ca originalul a fost.

Acesta este un relativ simple modificări, dar de multe ori aveți nevoie pentru a efectua data modificării mai complexe. În acest scop, există un mecanism special în API java.time - TemporalAdjuster. Scopul lui - pentru a oferi un instrument încorporat vă permite să manipuleze datele, de exemplu, pentru a obține un obiect care corespunde în ultima zi a lunii. Unele dintre ele fac parte din API. dar puteți adăuga propriul. Utilizați modificatori sunt foarte simple, dar necesită import static:

Utilizarea modificatorului simplifică foarte mult codul. Nimeni nu vrea să vadă un număr mare de manipulări până în prezent manual. În cazul în care orice manipulare cu data găsite în proiectul dvs. de mai multe ori, scrie propriul modificator, și echipa ta va fi capabil să-l folosească așa cum a fost deja scris și componente testate.

Ora și data ca valoare

Este logic să-și petreacă un pic de timp încercând să dau seama ce face LOCALDATE în valoare. Valori - tipuri de date simple, care sunt complet interschimbabile atunci când acestea sunt egale, identitatea de obiect devine lipsită de sens. Un exemplu clasic al unei clase de valoare - String. Comparăm șirul prin egali (). și nu ne pasă dacă obiectele în comparație operatorul == identice.
Cele mai multe dintre clasele de lucru cu datele și orele sunt, de asemenea, valori. Deci, pentru a le compara cu operatorul == este o idee proastă, așa cum se arată în documentația.
Cei care doresc să afle mai multe, te sfătuiesc să verificați recentele mele VALJOs determinare. care a indicat un set strict de reguli care trebuie urmate de obiecte de valoare în Java. inclusiv imuabilitatea, disponibilitatea metodei fabrică și definirea corectă a equals () metoda. hashCode. toString () și compareTo ().

calendare alternative