logo

Јава датум и време

Пакети јава.тиме, јава.утил, јава.скл и јава.тект садрже класе за представљање датума и времена. Следеће класе су важне за рад са датумом у Јави.

Јава 8 АПИ за датум/време

Јава је увела нови АПИ за датум и време од Јаве 8. Пакет јава.тиме садржи Јава 8 класе датума и времена.

Класични АПИ за датум/време

Али класични или стари Јава Дате АПИ је такође користан. Погледајмо листу класичних класа датума и времена.

Форматирање датума и времена

Можемо да форматирамо датум и време у Јави користећи следеће класе:

Јава АПИ-ји за датум и време

Јава обезбеђује функционалност датума и времена уз помоћ два пакета јава.тиме и јава.утил. Пакет јава.тиме је уведен у Јаву 8, а новоуведене класе покушавају да превазиђу недостатке застарелих класа јава.утил.Дате и јава.утил.Цалендар.

Класичне АПИ класе датума и времена

Примарне класе пре издавања Јава 8 биле су:

класа против објекта јава

Јава.ланг.Систем: Класа обезбеђује метод цуррентТимеМиллис() који враћа тренутно време у милисекундама. Приказује тренутни датум и време у милисекундама од 1. јануара 1970.

јава.утил.Дате: Користи се за приказ одређеног тренутка времена, са јединицом милисекунди.

јава.утил.Цалендар: То је апстрактна класа која обезбеђује методе за конверзију између инстанци и манипулацију календарским пољима на различите начине.

јава.тект.СимплеДатеФормат: То је класа која се користи за форматирање и рашчлањивање датума на унапред дефинисан начин или кориснички дефинисан образац.

јава.утил.ТимеЗоне: Представља помак временске зоне, а такође израчунава и летње рачунање времена.

Недостаци постојећих АПИ-ја за датум/време

    Безбедност нити:Постојеће класе као што су Датум и Календар не пружају сигурност нити. Због тога то доводи до проблема истовремености које је тешко отклонити о којима програмери морају водити рачуна. Нови АПИ-ји за датум и време Јава 8 обезбеђују сигурност нити и непроменљиви су, чиме се избегава проблем истовремености од стране програмера.Лоше дизајнирање АПИ-ја:Класични АПИ-ји за датум и календар не пружају методе за обављање основних свакодневних функција. Класе датума и времена уведене у Јави 8 су ИСО-центричне и пружају низ различитих метода за извођење операција у вези са датумом, временом, трајањем и периодима.Тешко руковање временском зоном:Руковање временском зоном користећи класичне класе Дате и Цалендар је тешко јер су програмери требало да напишу логику за то. Са новим АПИ-јима, руковање временском зоном се може лако обавити помоћу локалних и ЗонедДате/Тиме АПИ-ја.

Нови АПИ за датум и време у Јави 8

Нови АПИ за датум помаже да се превазиђу горе наведени недостаци са старим класама. Укључује следеће класе:

јава.тиме.ЛоцалДате: Он представља годину-месец-дан у ИСО календару и користан је за представљање датума без времена. Може се користити само за представљање информација о датуму као што је датум рођења или датум венчања.

јава.тиме.ЛоцалТиме: Бави се само временом. Користан је за представљање доба дана заснованог на људима, као што су време филмова или време отварања и затварања локалне библиотеке.

јава.тиме.ЛоцалДатеТиме: Обрађује и датум и време, без временске зоне. То је комбинација ЛоцалДате са ЛоцалТиме.

јава.тиме.ЗонедДатеТиме: Комбинује класу ЛоцалДатеТиме са информацијама о зони датим у класи ЗонеИд. Представља потпуни датум и временску ознаку заједно са информацијама о временској зони.

јава.тиме.ОффсетТиме: Он рукује временом са одговарајућим помаком временске зоне од Гринича/УТЦ, без ИД-а временске зоне.

јава.тиме.ОффсетДатеТиме: Он рукује датумом и временом са одговарајућим помаком временске зоне у односу на Гринич/УТЦ, без ИД-а временске зоне.

јава.тиме.Цлоцк : Омогућава приступ тренутном тренутку, датуму и времену у било којој временској зони. Иако је употреба класе Цлоцк опциона, ова функција нам омогућава да тестирамо ваш код за друге временске зоне или коришћењем фиксног сата, где се време не мења.

јава.тиме.Инстант : Представља почетак наносекунде на временској линији (од ЕПОЦХ) и користан је за генерисање временске ознаке која представља време машине. Тренутак који се догоди пре епохе има негативну вредност, а тренутак који се догоди после епохе има позитивну вредност.

јава.тиме.Дуратион : Разлика између два тренутка и мери се у секундама или наносекундама и не користи конструкције засноване на датуму као што су године, месеци и дани, иако класа обезбеђује методе које претварају у дане, сате и минуте.

јава.тиме.Период : Користи се за дефинисање разлике између датума у ​​вредностима заснованим на датумима (године, месеци, дани).

јава.тиме.ЗонеИд : Наводи идентификатор временске зоне и даје правила за конверзију између Инстанта и ЛоцалДатеТиме.

јава.тиме.ЗонеОффсет : Описује помак временске зоне у односу на Гринич/УТЦ време.

јава.тиме.формат.ДатеТимеФорматтер : Долази са различитим унапред дефинисаним форматерима, или можемо дефинисати свој сопствени. Има метод парсе() или формат() за рашчлањивање и форматирање вредности датума и времена.