Thêm một ngày vào Joda-Time DateTime


83

Tôi có ngày Wed May 08 00:00:00 GMT+06:30 2013. Tôi thêm một ngày vào đó bằng cách sử dụng Joda-Time DateTime như thế này.

DateTime dateTime = new DateTime(date);
dateTime.plusDays(1);

Khi tôi in dateTime, tôi có ngày này 2013-05-08T00:00:00.000+06:30. Thời gian ngày joda không thêm một ngày. Tôi không tìm thấy bất kỳ lỗi nào.

Cảm ơn


8
Tôi không biết joda, nhưng tôi giả sử plusDays()trả về một DateTimeđối tượng mới . Cố gắng datetime = dateTime.plusDays(1). Xác nhận từ tài liệu .
Phylogenesis

@Phylogenesis, bạn có thể muốn đăng câu trả lời đó như một câu trả lời, vì nó chính xác.
Barend

1
@Barend nó đã được đăng như một câu trả lời ngay bây giờ. Không cần phải lộn xộn câu hỏi.
Phylogenesis

1
Tôi dường như đang trong quá trình đăng câu trả lời khi chuỗi bình luận xảy ra. Nếu tôi thấy nó xảy ra, tôi sẽ đồng ý rằng Phylogenesis nên đăng như một câu trả lời.
Don Roby

Câu trả lời:


172

Các plusDaysphương pháp không phải là một mutator. Nó trả về một bản sao của DateTimeđối tượng đã cho với thay đổi được thực hiện chứ không phải thay đổi đối tượng đã cho.

Nếu bạn thực sự muốn thay đổi dateTimegiá trị biến , bạn sẽ cần:

DateTime dateTime = new DateTime(date);
dateTime = dateTime.plusDays(1);

33

Nếu bạn muốn thêm ngày vào phiên bản thời gian ngày hiện tại, hãy sử dụng MutableDateTime

MutableDateTime dateTime = new MutableDateTime(date);  
dateTime.addDays(1);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.