1. Ngenalke Tanggal Wektu API
Pangripta Jawa ora seneng karo kahanan kelas Tanggal lan Tanggalan. Padha apik ing dina, nanging wektu ganti. Lan soko prasaja, kuat lan dipercaya dadi perlu. Lan kanthi rilis Java 8 (15 taun sawise Calendar
muncul), Java Date Time API dikenalake. Iki minangka kumpulan kelas sing kudu bisa ngrampungake saben tugas sing bisa ditindakake kanthi wektu.
Ana akeh kelas sing dipérang dadi sawetara paket:
Paket kasebut java.time
minangka paket dhasar kanggo Java Date Time API: ngemot kelas kayata LocalDate
, LocalTime
, LocalDateTime
, Instant
, Period
, lan Duration
. Kabeh obyek saka kelas kasebut yaiku immutable
, sing tegese ora bisa diganti sawise digawe.
Paket java.time.format
ngemot kelas kanggo format wektu, IE Ngonversi kaping (lan tanggal) kanggo strings lan kosok balene. Contone, ngemot DateTimeFormatter
kelas serbaguna, sing ngganti SimpleDateFormat
kelas kasebut.
Paket kasebut java.time.zone
ngemot kelas kanggo nggarap zona wektu. Isine kelas kayata TimeZone
lan ZonedDateTime
. Yen sampeyan nulis kode server kanggo klien sing ana ing macem-macem negara, sampeyan butuh kelas kasebut.
2. LocalDate
kelas
Kelas pisanan lan paling migunani saka API Tanggal Wektu sing bakal kita deleng yaiku LocalDate
kelas kasebut. Sing mbokmenawa bisa guess saka jenenge, kelas iki dirancang kanggo bisa karo tanggal.
Obyek kelas iki ora owah sawise digawe, yaiku LocalDate
kelas ora bisa diganti. Nanging sifat iki nambah gamblang lan linuwih kanggo kelas. Utamane yen sawetara utas (utas eksekusi) sesambungan karo obyek kasebut ing wektu sing padha.
Kanggo nggawe LocalDate
obyek anyar, sampeyan kudu nggunakake salah siji saka cara statis. Punika dhaptar sing utama.
Njupuk tanggal saiki
Kanggo entuk tanggal saiki, sampeyan kudu nggunakake now()
metode statis. Iki luwih gampang tinimbang sing katon:
LocalDate today = LocalDate.now();
Where today
punika LocalDate
variabel, lan LocalDate.now()
telpon kanggo now()
cara statis saka LocalDate
kelas.
Tuladha:
Kode | Output konsol |
---|---|
|
|
Njupuk tanggal ing zona wektu tartamtu
Kelas kasebut LocalDate
uga duwe variasi metode now(ZoneId)
sing ngidini sampeyan entuk tanggal saiki ing zona wektu tartamtu.
Kanggo nindakake iki, kita kudu kelas liyane - ZoneId
kelas (java.time.ZoneId). Nduwe of()
cara sing ngasilake ZoneId
obyek sing diwenehi jeneng zona wektu.
Kanggo nemtokake tanggal saiki ing Shanghai, sampeyan kudu nulis kode ing ngisor iki:
Kode | Output konsol |
---|---|
|
|
Sampeyan bisa nemokake dhaptar jeneng kabeh zona wektu ing Internet.
3. Njupuk tanggal tartamtu
Kanggo entuk LocalDate
obyek sing nuduhake tanggal tartamtu, sampeyan kudu nggunakake of()
metode statis. Kabeh ing kene uga prasaja lan jelas:
LocalDate date = LocalDate.of(2019, Month.FEBRUARY, 22);
Where date
punika LocalDate
variabel, lan telpon kanggo cara statis saka kelas.LocalDate.of()
of()
LocalDate
Ing kene kita ndeleng FEBRUARY
konstanta kelas Month
(java.time.Month) digunakake kanggo nemtokake Februari minangka sasi.
Sampeyan uga bisa nemtokake sasi kanthi cara lawas - nggunakake nomer:
LocalDate date = LocalDate.of(2019, 2, 22);
Kalih? Tinimbang Februari? Apa tegese sasi maneh dinomer saka siji?
Ya, meh 20 taun sawise nggawe Jawa, sasi pungkasane mandheg angka saka nol.
Tuladha:
Kode | Output konsol |
---|---|
|
|
Entuk tanggal kanthi indeks dina
Ana cara liyane sing menarik kanggo nggawe tanggal: nggunakake ofYearDay
metode kasebut, sampeyan bisa entuk tanggal mung adhedhasar nomer taun lan indeks dina ing taun kasebut. Punika tampilan umum:
LocalDate date = LocalDate.ofYearDay(year, day);
Endi year
nomer taun lan day
indeks dina ing taun.
Tuladha:
Kode | Output konsol |
---|---|
|
|
Tanggal 100 ing 2019 yaiku 10 April.
Entuk tanggal Unix
Apa sampeyan kelingan manawa Date
obyek tansah nyimpen wektu minangka jumlah milidetik wiwit 1 Januari 1970? Kanggo mesthekake programer ora bakal kantun dina lawas sing apik, LocalDate
kelas entuk ofEpochDay()
metode, sing ngasilake tanggal sing diwilang saka 1 Januari 1970. Punika tampilan umum:
LocalDate date = LocalDate.ofEpochDay(day);
Endi day
cacahe dina sing wis lumaku wiwit tanggal 1 Januari 1970.
Tuladha:
Kode | Output konsol |
---|---|
|
|
4. Njupuk unsur tanggal
Ora bisa ngganti LocalDate
obyek, nanging sampeyan bisa entuk unsur individu saka tanggal sing disimpen. LocalDate
obyek duwe sawetara cara kanggo iki:
Metode | Katrangan |
---|---|
|
Ngasilake taun tanggal tartamtu |
|
Ngasilake sasi tanggal: salah siji saka sawetara konstantaJANUARY, FEBRUARY, ...; |
|
Ngasilake indeks sasi tanggal. Januari == 1. |
|
Ngasilake indeks dina sasi |
|
Ngasilake indeks dina saka awal taun |
|
Ngasilake dina minggu: salah siji saka sawetara konstantaMONDAY, TUESDAY, ...; |
|
Ngasilake jaman: salah siji BCE (Sadurunge Era Saiki) lan CE (Era Saiki) |
Tuladha:
Kode | Output konsol |
---|---|
|
|
5. Ngganti tanggal ing LocalDate
obyek
Kelas kasebut LocalDate
ngemot sawetara cara sing ngidini sampeyan nggarap tanggal. Implementasi metode kasebut padha karo metode kelas String
: ora ngganti LocalDate
obyek sing ana, nanging ngasilake sing anyar kanthi data sing dikarepake.
Mangkene metode kelas LocalDate
:
Metode | Katrangan |
---|---|
|
Nambah sawetara dina tartamtu kanggo tanggal |
|
Nambah minggu kanggo tanggal |
|
Nambah sasi kanggo tanggal |
|
Nambah taun kanggo tanggal |
|
Subtracts dina saka tanggal |
|
Ngurangi minggu saka tanggal |
|
Subtracts sasi saka tanggal |
|
Subtracts taun saka tanggal |
Tuladha:
Kode | Output konsol |
---|---|
|
|
Cara birthday object
sing diarani ora owah. Nanging, cara kasebut ngasilake obyek anyar sing ngemot data sing dikarepake.
GO TO FULL VERSION