Работа с дати в Java 8

Съдържание
Работата с дати винаги е била повратна точка в кариерата на програмистите. Това отчасти се дължи на това, че в по -ранните версии на Java беше малко объркващо и непоследователно. Въпреки това, в новата версия a API което ни позволява да извлечем максимума от езика с по-ясни и лесни за използване методи.
Това прави работата с формати за дата и час в Java не се мъчи. За това трябва да проучим новите форми и възможности, които ни дава езикът, с цел да превърнем една от точките, които генерират най -голямо объркване, в нещо, което усвояваме правилно.
За да опрости работата, екипът за разработка на Java ни предостави редица общи методи, които можем да използваме, както при работа дати, както когато работим с часа. Това намалява усилията за учене поради подобно поведение и за двата типа обекти.
По -долу ще изброим някои от методите, които се открояват най -много, заедно с малко обяснение за какво можем да ги използваме, като с това можем да имаме обща представа, когато преминем към практическата част по -късно.
приТози метод ни позволява да направим комбинация от обекта, който го извиква, с друг обект.
форматТя ни позволява да използваме някои параметри, за да създадем в резултат дата или час с конкретен формат, от който се нуждаем.
вземетеПозволява ни да получим елемент, който посочваме.
еТя ни позволява да проверим дали обектът е от типа, с който правим сравнението.
плюсТой ни дава възможност да добавим допълнение към обекта, който го извиква и връща копие от него с вече добавената стойност.
да сеПозволява ни да направим преобразуване от един тип в друг.
Сега с тези знания можем да преминем към други въпроси в рамките на същата тази тема за дати и часове в Java.
Както обяснихме формите, които се използват в Java Сега те са се променили за новата версия, затова за да повторим примерите, които ще дадем, се нуждаем от версия 8 на комплекта за разработка на езици, в противен случай ще получим грешка като следната:

Изяснихме въпроса, нека видим по -долу какво трябва да направим, за да получим информацията за текуща дата и час в Java.
За целта ще създадем клас, в който ще създаваме обекти от типа LocalDate, Местно време Y LocalDateTime. Всеки от тях ще ни даде съответно текущата дата, текущия час и текущата дата и час.
Това е доста полезно в такива случаи системни регистрационни файлове, където трябва да уловим точния момент, в който се предприема действие или се случва събитие, което се интересуваме от запис. За да постигнем целта, можем да направим код, подобен на следния:
 импортиране на java.time. *; публичен клас CurrentDate {public static void main (String [] args) {LocalDate currentDate = LocalDate.now (); System.out.println (currentDate); LocalTime currentTime = LocalTime.now (); System.out.println (currentTime); LocalDateTime сега = LocalDateTime.now (); System.out.println (сега); }} 

Както виждаме, всичко, което правим, е да декларираме нашите обекти от гореспоменатите типове и да им присвоим стойността, която се връща с метода сега (), който е този, който наистина отговаря за даването на текущата дата и час, тогава ние се тревожим само за отпечатването на всеки от декларираните обекти.
ВажноМного е важно да включите пакета java.time изцяло, така че да имаме достъп до всички функции, които използваме, също така, ако имаме съмнения в официалната документация, можем да намерим повече подробности за опциите на същите.
Нека да видим как изглежда изпълнението на нашата програма:

Друг аспект, който винаги трябва да вземаме предвид, е начинът на показване на информацията. По отношение на дати имаме много начини, но някои са по -удобни от други в някои ситуации. Това през повечето време ни кара да изпълняваме допълнителни операции, които ни карат да пишем допълнителни редове код, които в Java 8 вече не е толкова сложно.
В зависимост от приложението, което разработваме, ще искаме да покажем месеца по неговия номер в календара или по името му, но името може да бъде пълно или съкратено, както и деня или годината, всичко това ни дава много голям брой опции, всички еднакво валидни. За да разрешим този проблем, можем да използваме форматировчик на дата.
За да форматираме датите, имаме някои заместващи символи или параметри, които ни позволяват да получим стойностите, обяснени в предишния параграф. Нека видим кои са най -важните.
  • Y, ни позволява достъп до годината в четири или двуцифрен формат (2014 или 14).
  • д, ни позволява да получим номера на деня в годината (225).
  • д, За разлика от предходния, той връща номера на деня от въпросния месец (27).
  • L, ни помага да получим месеца в годината в числова форма, М ни дава месеца в текст.
  • З, ни дава време.
  • с, ни дава секундите.
  • м, ни позволява да получим протоколите.
  • да се, ни дава сутринта или часа на часа.
  • z, ни позволява достъп до името на часовата зона.
Тъй като знаем основните параметри на формата, ще опитаме ново упражнение, в следния код ще направим някои формати, на първо място ще получим текущата дата и ще я преобразуваме във формат година месец ден с наклонени черти вместо тирета, тогава ще анализираме статична дата, която идва от низ със същия формат и накрая ще покажем пълна дата, включително ако е am или pm, за да използваме заместващите знаци, които обясниха по -рано. Нека видим съответния код:
 импортиране на java.time. *; импортиране на java.time.format. *; публичен клас DateFormatter {public static void main (String [] args) {DateTimeFormatter форматирана дата = DateTimeFormatter.ofPattern ("гггг / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", Форматирана дата)); Часова зона DateTimeFormatter = DateTimeFormatter.ofPattern ("d MMMM, гггг h: mm a"); System.out.println (ZonedDateTime.now (). Формат (часова зона)); }} 

Първото нещо, което можем да подчертаем, е, че трябва да импортираме и двата пакета java.time с всичките си класове като пакет java.time.format с всичките му класове също. Възможно е да направите упражнението, като импортирате конкретните класове, но оставяме това като домашна работа, така че те имат задача да видят официалната документация.
След това виждаме, че създаваме обект от типа DateTimeFormatter и използваме метода наPattern () който приема посочените заместващи символи, виждаме, че поставяме заместващите символи в два екземпляра като yyyy за получаване на четирите цифри на текущата година или също mm за получаване на двете цифри на минутите.
Накрая отпечатваме всяка от датите с техните формати и получаваме следното, когато изпълняваме нашата програма:

Тук можем да наблюдаваме всички промени, които сме направили в начина на форматиране на датите, с това можем да му придадем по -голямо значение и четливост както на човешко ниво, така и за двигатели на База данни Какво MySQL трябва да получите датата по подразбиране във формат гггг-LL-дд.
Друга употреба, която можем да дадем на новите класове за дата и час на Java е да можете да използвате дати, които идват от текстов низ, те могат да бъдат създадени от потребител, да идват от текстов файл и т.н. Но важното е, че трябва да ги манипулираме и за това можем да използваме всички инструменти, които имаме под ръка.
Нека да видим в следния код как, използвайки видяното, можем да направим промени в дата от текстов низ.
 импортиране на java.time. *; импортиране на java.time.format. *; публичен клас StaticDate {public static void main (String [] args) {String StartDate = "1906-12-31"; LocalDate takenDate = LocalDate.parse (startDate); System.out.println ("Дата:" + TakenDate); String dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Дата / час:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "С нов формат:" + df.format (TakenDate)); }} 

В кода виждаме как създаваме начална дата в текстов низ, след това с обект от типа LocalDate използваме метода Разбор за да включим текстовия низ към обект тип дата, след това отпечатваме обекта и виждаме, че ако е приел датата правилно, повтаряме същата процедура, но използвайки дата и час с LocalDateTime.
И накрая, ние вземаме първия си създаден обект и прилагаме нов формат към него, като по този начин потвърждаваме, че сме успели да въведем и манипулираме дата, която сме установили от текстов низ. Нека да видим как изглежда, когато стартираме нашата програма:

С това приключваме този урок, научихме се да работим с дати в Java използвайки подобренията в класовете, които новата версия включва, което е Java 8Това може да се използва за много приложения на системно ниво и дори за потребителски интерфейси.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave