Kể từ Java8, các class liên quan đến việc xử lý date-time đã thống nhất lại và dễ hiểu hơn trước. Dưới đây là 1 số note cần thiết để cho người học mới về java có thể nắm bắt.
Nội dung bài viết
I. Trước java8
Mọi người hay dùng
java.util.Date lib org.joda.time
II. Kể từ Java8
class | Goal | Example |
---|---|---|
LocalTime | time local | 12:03:04.912128700 |
LocalDate | date local | 2021-05-24 |
LocalDateTime | date and time local | 2021-05-24T12:03:04.913126 |
ZonedDateTime | data and time with timezone | 2021-05-24T12:03:04.913126+07:00[Asia/Bangkok] |
Instant | right now on the time-line at UTC+0 | 2021-05-24T05:03:04.930661400Z |
OffsetDateTime | a date-time with an offset | 2021-05-24T12:03:04.935684200+07:00 |
Period | between date | Period.ofMonths(1); //P1M |
Duration | between time | Duration.ofHours(2); //PT2H |
Phần mà hầu hết mọi người chưa rõ nhất là về các thuật ngữ của timezone.
- GMT (Greenwich Mean Time) là 1 time zone cụ thể và nó là time zone 0, đi qua châu Âu, còn gọi lại UTC +0
- UTC (Coordinated Universal Time) là 1 chuẩn về time zone, tiếng anh là time zone standard. Note: méo hiểu vì sao Coordinated Universal Time lại viết tắt là UTC. @@
Note khác:
3 class dưới đây đều chứa thông tin về thời điểm hiện tại có độ chính xác là nanosecond.
java.time.Instant java.time.OffsetDateTime java.time.ZonedDateTime
Tuy nhiên, có sự khác nhau giữa 3 thằng này.
- Instant: là dạng đơn giản nhất, chỉ thể hiện thời điểm hiện tại
2021-05-24T05:03:04.930661400Z - OffsetDateTime: sẽ thêm cả thông số offset (ví dụ: UTC+07)
2021-05-24T12:03:04.935684200+07:00 - ZonedDateTime: sẽ thêm cả thông số về zone
2021-05-24T12:03:04.913126+07:00[Asia/Bangkok]
III. Daylight Savings Time
Một vài nước có cái này, đặc biệt là nước Mỹ. Đại ý là sửa thời gian khoảng 1h để mùa hè có thời gian sử dụng ánh mặt trời hợp lý hơn. Ở Mỹ, họ sẽ vặn nhanh 1h vào tháng 3 và sửa lại vào tháng 11.
Daylight Savings Time đã được tính toán trong các thư viện của java.
IV. Tổng kết
Đó là tổng quan về date-time và cách java làm việc với date-time. Nếu bạn thấy có ích cho bạn, đừng ngại ngần cho 1 like và share bài viết cho người khác. Thanks hehe