Интуитивният, здрав библиотека за часове и дати, най-накрая се появи в
Интуитивният, здрав библиотека за часове и дати, най-накрая е в Java (част 1).
И накрая, в Java има интуитивен, надежден метод за работа с дати и часове.
датата и часа са основни принципи в много приложения. Такива различни неща, като датата на раждане, лизингови условия, събитията и работното време на магазина всички са базирани на дати и часове, но Java SE не предоставя удобен начин за работа с тях. Започвайки с Java SE 8. е отнесено java.time пакети - което осигурява добре структуриран API за работа с дати и часове.
праистория
Ново API java.time съдържа 5 опаковки:- java.time - основен пакет, съдържащ обектите за съхранение на ценности
- java.time.chrono - осигурява достъп до различни календари
- java.time.format - разпознаване и форматиране на дата и час
- java.time.temporal - библиотеки от ниско ниво и разширена функционалност
- java.time.zone - класове за работа с часови зони
В нашия пример, можем да видим датата създаден с Фабрика Метод (всички конструктори частни). Тогава питам някои от обекта на данните. Моля, имайте предвид, че трансфери Месец и DayOfWeek създаден, за да направят кода по-разбираеми и надеждни.
В следващия пример ще видим как да се промени датата. Тъй като класът неизменни, резултатът ще бъде на нови съоръжения, и ще остане като оригинала беше.
Това е сравнително прости промени, но често трябва да извършите по-сложна, дата на промяна. За тази цел има специален механизъм в java.time API - TemporalAdjuster. Неговата цел - да осигури вграден инструмент ви позволява да манипулират дати, например, за да получите един обект, съответстващ на последното число на месеца. Някои от тях са част от API. но можете да добавите свой собствен. Използвайте модификатори са много прости, но изисква статичен внос:
Използването на модификатора значително опростява кода си. Никой не иска да се види на голям брой манипулации към днешна дата ръчно. Ако някоя манипулация с датата намерена в проекта си няколко пъти, напишете своето собствено модификатор, и вашият екип ще бъде в състояние да го използвате като тя вече е написана и тествани компоненти.
Часът и датата като стойността
Логично е да отделите малко време, опитвайки се да разбера какво прави LOCALDATE в стойност. Ценности - прости типове данни, които са напълно взаимозаменяеми, когато те са равни, обект идентичност се обезсмисля. Класически пример за клас на стойност - String. Ние сравняваме низа чрез равенство (). и не ни пука дали обектите в оператора за сравнение == идентични.
Повечето от класовете за работа с дати и часове са и ценности. Така че, за да ги сравни с оператор == е лоша идея, както е посочено в документацията.
Тези, които искат да знаят повече, аз ви съветваме да проверите последните решимостта ми VALJOs. в което се посочва строг набор от правила, които да бъдат следвани от стойността обекти в Java. включително неизменност, наличието на фабрика метод и правилното определение е равно на () метод. хеш-код. ToString () и compareTo ().