tl; dr
LocalDate.now(ZoneId.of("America/Montreal"))
.plusDays(30)
Chi tiết
Dễ dàng hơn bây giờ với các lớp java.time hiện đại thay thế các lớp học Calendar
& Date
cũ.
LocalDate
Lớp LocalDate
đại diện cho một giá trị ngày tháng chỉ mà không cần thời gian của ngày và không có múi giờ.
Múi giờ rất quan trọng trong việc xác định ngày. Đối với bất kỳ thời điểm cụ thể nào, ngày thay đổi trên toàn cầu theo múi giờ. Ví dụ: một vài phút sau nửa đêm ở Paris France là một ngày mới trong khi vẫn “ngày hôm qua” trong Montréal Québec.
Chỉ định proper time zone name trong định dạng của continent/region
, chẳng hạn như America/Montreal
, Africa/Casablanca
, hoặc Pacific/Auckland
. Không bao giờ sử dụng từ viết tắt 3-4 ký tự như EST
hoặc IST
vì chúng là không múi giờ thực, không được chuẩn hóa và thậm chí không độc đáo (!).
ZoneId z = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(z);
Bạn có thể thêm số ngày vào đó.
LocalDate later = today.plusDays(30);
Period
Bạn có thể đại diện cho một khoảng thời gian với lớp Period
.
Period thirtyDays = Period.ofDays(30);
Bạn có thể thực hiện ngày toán bằng cách gọi plus
hoặc minus
phương pháp.
LocalDate later = today.plus(thirtyDays);
Về java.thời gian
Khuôn khổ java.time được tích hợp vào Java 8 trở lên. Các lớp này thay thế các lớp học ngày giờ legacy phiền hà cũ như java.util.Date
, Calendar
, & SimpleDateFormat
.
Dự án Joda-Time, hiện đang ở maintenance mode, khuyên di chuyển đến các lớp java.time.
Để tìm hiểu thêm, hãy xem Oracle Tutorial. Và tìm kiếm Stack Overflow cho nhiều ví dụ và giải thích. Đặc điểm kỹ thuật là JSR 310.
Nơi lấy các lớp java.time?
- Java SE 8 và SE 9 và sau
- Built-in.
- Một phần của API Java chuẩn với gói được triển khai.
- Java 9 thêm một số tính năng và bản sửa lỗi nhỏ.
- Java SE 6 và SE 7
- Hầu hết các chức năng java.time được back-chuyển đến Java 6 & 7 trong ThreeTen-Backport.
- Android
Dự án mở rộng ThreeTen-Extra java.time với các lớp bổ sung. Dự án này là một nền tảng chứng minh cho những bổ sung có thể có trong tương lai vào java.time. Bạn có thể tìm thấy một số lớp học hữu ích tại đây như Interval
, YearWeek
, YearQuarter
và more.
Mã của bạn ngụ ý rằng tất cả các tháng đều có 30 ngày. – whiskeysierra