1. LocalDateTimeklase

Pinagsasama ng LocalDateTimeklase ang mga kakayahan ng LocalDateat LocalTimemga klase: nag-iimbak ito ng parehong petsa at oras. Ang mga bagay nito ay hindi rin nababago, at ang mga pamamaraan nito ay katulad ng sa LocalDateat LocalTimemga klase.

Pagkuha ng kasalukuyang petsa at oras

Ang lahat ay tulad ng iyong inaasahan dito: ginagamit namin ang now()pamamaraan. Halimbawa:

Code Output ng console
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Kapag ipinakita sa screen, ang petsa at oras ay pinaghihiwalay ng titik T.

Pagkuha ng isang tiyak na petsa at oras

Hindi nakakagulat, ang lahat ay katulad ng LocalDateat LocalTimemga klase — ginagamit namin ang of()pamamaraan:

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Una, may mga parameter na tumutukoy sa petsa sa parehong mga format tulad ng sa LocalDateklase. Pagkatapos ay mayroong mga parameter na tumutukoy sa oras sa parehong mga format tulad ng sa LocalTimeklase. Ang isang listahan ng lahat ng mga pagkakaiba-iba ng of()pamamaraan ay ibinigay sa ibaba:

Paraan
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Maaari mong itakda ang petsa nang direkta o itakda ito nang hindi direkta sa pamamagitan ng LocalDateat LocalTimemga bagay:

Code
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Output ng console
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

Ang LocalDateTimeklase ay may mga pamamaraan para sa pagkuha ng mga elemento ng isang petsa at/o oras. Eksaktong sinasalamin nila ang mga pamamaraan ng LocalDateat LocalTimemga klase. Hindi na natin sila uulitin dito.



2. Instantklase

Hindi rin nakakalimutan ng mga tagalikha ng Java ang tungkol sa mga lumang paraan ng paaralan.

Kasama sa Date Time API ang isang Instant na klase para sa pagtatrabaho sa oras na nilayon para sa mga prosesong nagaganap sa mga computer. Sa halip na mga oras, minuto, at segundo, tumatalakay ito sa mga segundo, millisecond, at nanosecond.

Ang klase na ito ay may dalawang field na kumakatawan sa:

  • ang bilang ng mga segundo na lumipas mula noong Enero 1, 1970
  • isang bilang ng mga nanosecond

Ginawa ba ang klase para sa mga developer? Oo. Kaya naman kinakalkula nito ang oras sa Unix-time, na magsisimula sa simula ng 1970.

Maaaring sabihin ng isa na ang Instantklase ay isang pinasimpleng bersyon ng Dateklase, na pinapanatili lamang ang kailangan ng mga programmer.

Maaari kang makakuha ng isang Instantbagay sa eksaktong parehong paraan tulad ng isang LocalTimebagay:

Instant timestamp = Instant.now();

Nasaan timestampang Instantvariable, at isang tawag sa static na paraan ng klase.Instant.now()now()Instant

Halimbawa:

Code Output ng console
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Maaari ka ring lumikha ng isang bagong bagay gamit ang mga pagkakaiba-iba ng of()pamamaraan sa pamamagitan ng pagpasa sa oras na lumipas mula noong Enero 1, 1970:

ofEpochMilli(long milliseconds)
Kailangan mong ipasa ang bilang ng mga millisecond
ofEpochSecond(long seconds)
Kailangan mong ipasa ang bilang ng mga segundo
ofEpochSecond(long seconds, long nanos)
Kailangan mong ipasa ang mga segundo at nanosecond

Mga pamamaraan na magagamit sa Instantmga bagay

Ang Instant na klase ay may dalawang pamamaraan na nagbabalik ng mga halaga ng mga field nito:

long getEpochSecond()
Bilang ng mga segundo na lumipas mula noong Enero 1, 1970
int getNano()
Nanoseconds.
long toEpochMilli()
Bilang ng mga millisecond na lumipas mula noong Enero 1, 1970

Mayroon ding mga pamamaraan upang lumikha ng isang bagong Instantbagay batay sa isang umiiral na:

Instant plusSeconds(long)
Nagdaragdag ng mga segundo sa kasalukuyang oras
Instant plusMillis(long)
Nagdaragdag ng millisecond
Instant plusNanos(long)
Nagdaragdag ng mga nanosecond
Instant minusSeconds(long)
Nagbabawas ng mga segundo
Instant minusMillis(long)
Nagbabawas ng millisecond
Instant minusNanos(long)
Ibinabawas ang mga nanosecond

Mga halimbawa:

Code Output ng console
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z