Tải bản đầy đủ (.docx) (4 trang)

Báo cáo lập trình java về LocalDate

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (134.13 KB, 4 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

BÁO CÁO
LẬP TRÌNH JAVA

Sinh viên thực hiện: Phạm Minh Tuấn
MSSV: 20112446
Giảng viên hướng dẫn: TS.Nguyễn Hồng Quang

Hà Nội, 2015


5.2 Local Dates
Ở Java phiên bản cũ, có một vài vấn đề tồn tại liên quan đến lớp date và time
như:
_ Lớp Date time không được khai báo một cách thích hợp, có lớp Date trong java.util
và java.sql
_ java.util.Date bao gồm cả date và time, trong khi đó java.sql.Date chỉ bao gồm Date
_ Không có khai báo rõ ràng cho lớp time, timestamp.
_ Tất cả các lớp Date thì có thể thay đổi, do đó nó không an toàn. Đây là một trong
những vấn đề lớn nhất của java Date và lớp Calendar.
_ Lớp Date không quy định giờ quốc tế và không hỗ trợ giờ khu vực ( zoned time )
Bởi những lý do đó mà Java 8 Date time API được thiết kế.

Có 2 loại thời gian trong trong Java API mới đó là local date/time ( ngày, giờ
địa phương ) và zoned time ( giờ khu vực ). Local date / time có ngày / thời gian của
ngày nhưng lại không có liên kết với thông tin thời gian của khu vực đó. Ta có ví dụ
về local date: 14/6/1903 ( Ngày mà Alonzo Church người phát minh ra biểu thức
lambda ra đời) ở đây chúng ta không có thông tin về giờ cũng như giờ của khu vực đó,
nó không đúng một cách chính xác với thời gian ngay lúc đó. Ta có ví dụ khác:


16/7/1969, 09:32:00 EDT ( Thời điểm phóng tàu Apolo 11 ) là một zoned date / time,
mô tả một cách chính xác và đầy đủ thông tin về ngày tháng, giờ và giờ khu vực.
Có nhiều cách tính không yêu cầu đến giờ khu vực, trong một vài trường hợp hợp nó
lại là trở ngại. Ví dụ: bạn có cuộc họp hàng tuần vào lúc 10:00, bởi vì các khu vực có
múi giờ lệch nhau 1 giờ, ở vùng cuối cùng của khu vực nếu bạn vượt qua đường biên
khu vực thì cuộc gặp mặt có thể sớm hơn hoặc muộn hơn 1 giờ là 9:00 hoặc 11:00
Vì những lý do đó, người thiết kết API khuyên chúng ta không nên sử dụng giờ khu
vực trừ khi muốn nói một cách chính xác tuyệt đối về thời gian. Với những ngày như
2


ngày sinh nhật, ngày nghĩ lễ, hoặc thời gian biểu thì tốt nhất nên sử dụng giờ địa
phương.
LocalDate là đối tượng có ngày, tháng, năm. Để sử dụng ta có thể sử dụng những
phương thức tĩnh now hoặc of:
LocalDate today = LocalDate.now(); //lấy thời gian hiện tại
LocalDate alonzosBirthday = LocalDate.of(1903, 6, 14); // Khai báo một ngày bắt
đầu để sử dụng với tham số truyền vào là năm, tháng, ngày. Ngoài ra muốn định dạng
lại các tham số truyền vào chúng ta sử dụng phương thức ofLocalizedDate.
LocalDate alonzosBirthday = LocalDate.of(1903, Month.JUNE, 14); // Khai báo một
ngày bằng cách sử dụng liệt kê các tháng.
Không giống với những quy ước trong Unix và java.util.Date, Tháng được đếm từ 0 và
năm được đếm từ 1900, cung cấp những số thường dùng cho tháng. Ở phiên bản Java
mới, chúng ta có thể sử dụng các tháng bằng cách liệt kê.
Một số phương thức thường sử dụng với đối tượng LocalDate

Phương thức

Mô tả


Now, of

Phương thức tĩnh trả về thời gian hiện tại
hoặc ngày, tháng, năm.

plusDays, plusWeeks,

Cộng thêm một số ngày, tuần, tháng năm.

plusMonths, plusYears
minusDays,minusWeeks,
minusMonths,minusYears

Trừ ngày, tuần, tháng, năm

plus, minus

Thêm hoặc bớt một khoảng thời gian
3


withDayOfMonth,withDayOfYear
,

Thay đổi giá trị của ngày, tháng, năm đã
được định trước.

withMonth, withYear
getDayOfMonth, getDayOfYear


Trả về giá trị của ngày, của năm

getDayOfWeek

Trả về ngày thứ mấy trong tuần bằng phép
liệt kê

getMonth, getMonthValue

Trả về giá trị của tháng ( số từ 1 – 12) hoặc
tên tháng

getYear

Trả về giá trị của năm

until

Trả về khoảng thời gian trước đó

isBefore, isAfter

So sánh 2 giá trị ngày với nhau

isLeapYear

Trả về giá trị true nếu nó chia hết cho 4
nhưng không chia hết cho 100 hoặc chia hết
cho 400


4



×