Satura rādītājs
Darbs ar datumiem vienmēr ir bijis pagrieziena punkts programmētāju karjerā. Daļēji tas ir tāpēc, ka iepriekšējās versijās Java tas bija nedaudz mulsinoši un nekonsekventi. Tomēr jaunajā versijā a API kas ļauj mums iegūt vislabāko no valodas, izmantojot skaidrākas un vieglāk lietojamas metodes.Tas liek strādāt ar datuma un laika formāti iekšā Java neesi spīdzināšana. Lai to izdarītu, mums ir jāizpēta valodas sniegtās jaunās formas un iespējas, lai vienu no punktiem, kas rada vislielāko neskaidrību, pārvērstu par kaut ko tādu, ko mēs pareizi apgūstam.
Lai vienkāršotu darbu, izstrādes komanda Java ir nodrošinājis mums vairākas kopīgas metodes, kuras varam izmantot gan strādājot datumi, piemēram, kad mēs strādājam stundas. Tas samazina mācību centienus, jo abu veidu objektiem ir līdzīga uzvedība.
Zemāk mēs uzskaitīsim dažas no metodēm, kas visvairāk izceļas, kā arī nelielu skaidrojumu par to, kam mēs tās varam izmantot, un tādējādi mēs varam gūt vispārēju priekšstatu, kad vēlāk pāriesim uz praktisko daļu.
plkstŠī metode ļauj mums izveidot objekta, kas to izsauc, kombināciju ar citu objektu.
formātāTas ļauj mums izmantot dažus parametrus, lai rezultātā iegūtu datumu vai laiku ar noteiktu formātu, kas mums nepieciešams.
gūtTas ļauj mums iegūt mūsu norādīto elementu.
irTas ļauj mums pārbaudīt, vai objekts ir tāda veida, ar kuru veicam salīdzinājumu.
plusTas dod mums iespēju pievienot papildinājumu objektam, kas to izsauc, un atgriež tā kopiju ar jau pievienoto vērtību.
uzTas ļauj mums pārveidot no viena veida uz citu.
Tagad ar šīm zināšanām mēs varam pāriet uz citiem jautājumiem šajā pašā datumu un laiku tēmā Java.
Kā mēs esam izskaidrojuši veidlapas, kas tiek izmantotas Java Tagad tie ir mainījušies jaunajai versijai, tāpēc, lai atkārtotu mūsu sniegtos piemērus, mums ir nepieciešama valodas attīstības komplekta 8. versija, pretējā gadījumā mēs saņemsim šādu kļūdu:
Šim nolūkam mēs izveidosim klasi, kurā parādīsim šāda veida objektus LocalDate, Vietējais laiks Y LocalDateTime. Katrs no tiem mums attiecīgi piešķirs pašreizējo datumu, pašreizējo laiku un pašreizējo datumu un laiku.
Tas ir ļoti noderīgi tādos gadījumos kā sistēmas žurnāli, kur mums jāfiksē precīzs brīdis, kad tiek veikta darbība vai notiek notikums, kuru mēs esam ieinteresēti ierakstīt. Lai sasniegtu mērķi, mēs varam izveidot kodu, kas līdzīgs šim:
importēt java.time. *; public class CurrentDate {public static void main (String [] args) {LocalDate currentDate = LocalDate.now (); System.out.println (currentDate); LocalTime currentTime = LocalTime.now (); System.out.println (currentTime); LocalDateTime now = LocalDateTime.now (); System.out.println (tagad); }}
Kā redzam, viss, ko mēs darām, ir deklarēt iepriekš minēto veidu objektus un piešķirt tiem vērtību, kas tiek atgriezta ar metodi tagad (), kas ir tas, kurš patiešām ir atbildīgs par pašreizējā datuma un laika norādīšanu, tad mēs uztraucamies tikai par katra deklarētā objekta izdrukāšanu.
SvarīgsIr ļoti svarīgi iekļaut iepakojumu java.laiks pilnībā, lai mēs varētu piekļūt visām mūsu izmantotajām funkcijām, arī, ja mums ir šaubas oficiālajā dokumentācijā, mēs varam atrast sīkāku informāciju par tās iespējām.
Apskatīsim, kā izskatās mūsu programmas izpilde:
Atkarībā no lietojumprogrammas, kuru izstrādājam, mēs vēlēsimies rādīt mēnesi pēc tā numura kalendārā vai pēc tā nosaukuma, taču nosaukums var būt pilnīgs vai saīsināts, kā arī diena vai gads, tas viss dod mums ļoti daudz iespēju, visas ir vienlīdz derīgas. Lai atrisinātu šo problēmu, mēs varam izmantot datuma formatētāju.
Lai formatētu datumus, mums ir daži aizstājējzīmes vai parametri, kas ļauj iegūt iepriekšējā punktā izskaidrotās vērtības. Apskatīsim, kuri ir vissvarīgākie.
- Y, ļauj mums piekļūt gadam četru vai divu ciparu formātā (2014. vai 14.).
- D, ļauj mums iegūt gada dienas numuru (225).
- d, Pretēji iepriekšējam, tas atgriež attiecīgā mēneša dienas numuru (27).
- L, palīdz mums iegūt gada mēnesi skaitliskā formā, M dod mums mēnesi tekstā.
- H, dod mums laiku.
- s, dod mums sekundes.
- m, ļauj mums iegūt protokolu.
- uz, norāda mums stundu vai pēcpusdienu.
- z, ļauj mums piekļūt laika joslas nosaukumam.
importēt java.time. *; importēt java.time.format. *; public class DateFormatter {public static void main (String [] args) {DateTimeFormatter formatēts datums = DateTimeFormatter.ofPattern ("gggg / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ()))); System.out.println (LocalDate.parse ("2014/11/15", formatēts datums)); DateTimeFormatter timezone = DateTimeFormatter.ofPattern ("d MMMM, gggg h: mm a"); System.out.println (ZonedDateTime.now (). Formāts (laika josla)); }}
Pirmā lieta, ko mēs varam uzsvērt, ir tā, ka mums ir jāimportē abi iepakojumi java.laiks ar visām tās klasēm kā iepakojums java.time.format arī ar visām viņa klasēm. Vingrinājumu ir iespējams veikt, importējot konkrētās nodarbības, bet mēs to atstājam kā mājasdarbu, arī tāpēc viņiem ir uzdevums redzēt oficiālo dokumentāciju.
Tad mēs redzam, ka mēs izveidojam šāda veida objektu DateTimeFormatter un mēs izmantojam metodi ofPattern () kas pieņem norādītās aizstājējzīmes, mēs redzam, ka aizstājējzīmes ievietojam divos eksemplāros kā yyyy lai iegūtu kārtējā gada četrus ciparus vai arī mm, lai iegūtu divu minūšu ciparus.
Visbeidzot, mēs izdrukājam katru datumu ar to formātu un, izpildot mūsu programmu, iegūstam sekojošo:
Vēl viens lietojums, ko mēs varam piešķirt jaunajām datuma un laika klasēm Java ir iespēja izmantot datumus, kas nāk no teksta virknes, tos var izveidot lietotājs, tie ir no teksta faila utt. Bet svarīgi ir tas, ka mums ir jāmēģina ar tiem manipulēt, un šim nolūkam mēs varam izmantot visus pieejamos rīkus.
Tālāk redzēsim, kā, izmantojot redzēto, mēs varam mainīt datumu no teksta virknes.
importēt java.time. *; importēt java.time.format. *; public class StaticDate {public static void main (String [] args) {String StartDate = "1906-12-31"; LocalDate takenDate = LocalDate.parse (startDate); System.out.println ("Datums:" + uzņemšanas datums); String dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Datums / laiks:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Ar jaunu formātu:" + df.format (TakenDate)); }}
Kodā mēs redzam, kā mēs izveidojam sākuma datumu teksta virknē, pēc tam ar šāda veida objektu LocalDate mēs izmantojam metodi Parsēt lai iekļautu teksta virkni datuma tipa objektā, tad mēs drukājam objektu un redzam, ka, ja datums ir pareizi ņemts, mēs atkārtojam to pašu procedūru, bet ar datumu un laiku, izmantojot LocalDateTime.
Visbeidzot, mēs uzņemam savu pirmo izveidoto objektu un tam piemērojam jaunu formātu, tādējādi apstiprinot, ka esam spējuši ievadīt un manipulēt ar datumu, ko izveidojām no teksta virknes. Apskatīsim, kā tas izskatās, palaižot mūsu programmu: