Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как установить конкретную дату в объект Joda Time DateTime?

Автор вопроса: AndreaNobiliОтветов: 1

Я новичок в Joda Time, и у меня есть следующие сомнения:

Я просто создал новый пустой объект DateTime таким образом:

DateTime dataMovimentoFittizio = new DateTime();

Моя проблема в том, что мне кажется, что тогда я не могу установить год, месяц и день для этого объекта.

Как я могу правильно установить конкретную дату в этот объект?

  • Помимо DateTime(), для DateTime доступно много других конструкторов. Вы ознакомились с документацией? GriffeyDog 22.11.2016
  • @GriffeyDog Я знаю конструктор, но не могу ли я установить его после создания объекта? AndreaNobili 22.11.2016
  • Нет, DateTime объекты неизменяемы. GriffeyDog 22.11.2016
  • С самого начала документации: DateTime - это стандартная реализация немодифицируемого класса datetime. Так что нет, ты не можешь. Но существует множество методов withYear, withDate и т. д., которые создают новые экземпляры на основе одного существующего и одного различия. Jon Skeet 22.11.2016
  • Если вы используете Java 8, вам следует использовать JSR-310, доступный в пакете java.time. MC Emperor 07.06.2020

javadatedatetimejodatime

Ответы

Ответ 1 · рейтинг 1 · Basil Bourque

Неизменяемые объекты

В классах Joda-Time в основном используются неизменяемые объекты, предназначенные для того, чтобы их нельзя было изменить после создания экземпляра.

Используйте методы для создания экземпляров новых объектов, частично основанных на значениях существующего объекта.

Java.время

Проект Joda-Time теперь находится в режиме обслуживания и рекомендует перейти на классы java.time.

Классы java.time строго используют неизменяемые объекты.

LocalDate

Для значения только для даты без времени суток и без часового пояса. Используйте LocalDate.

LocalDate ld = LocalDate.of( 2016 , 1 , 23 );  // January 23, 2016

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы