Что принятый путь состоит в том, чтобы заменить java.util. Дата (год, месяц, день)

Я пытаюсь сделать что-то действительно простое, но начинаю понимать, что даты в Java являются небольшим количеством минного поля. Все, что я хочу, должно получить переданные группы из трех ints (год, месяц и дата) создают некоторых Date объекты, сделайте некоторый простой тест на них (вроде того, как датируются перед датой B и после 1 января 1990), преобразуйте их в java.sql.Date объекты и выдают их к базе данных через JDBC.

Все очень простые и хорошо работают с помощью java.util.Date(int year,int month,int day) конструктор. Конечно, тот конструктор обесценивается, и я хотел бы избегать использования обесцениваемых вызовов в новом коде, который я пишу. Однако все другие опции решить эту простую проблему кажутся глупо сложными. Нет ли действительно никакой простой способ сделать то, что я хочу, не используя обесцениваемых конструкторов?

Я знаю стандартный ответ на весь Java, связанными с датой вопросами является "использование joda время", но я действительно не хочу начинать вытягивать в сторонних библиотеках для такой на вид тривиальной проблемы.

29
задан João Silva 21 April 2010 в 23:16
поделиться

3 ответа

Идея состоит в том, чтобы использовать класс Calendar , например так:

Calendar cal = Calendar.getInstance();
cal.set(year, month, date);
Date date = cal.getTime();

Действительно, если вы проверите Javadoc конструктор , о котором вы говорите, это именно то, что предлагается:

Date(int year, int month, int date)
          Deprecated. As of JDK version 1.1, replaced by Calendar.set(year + 1900, month, date) or GregorianCalendar(year + 1900, month, date).

Или ... используйте JodaTime :-).

41
ответ дан 28 November 2019 в 01:42
поделиться

Ответ LG действителен, но в целом вы должны использовать Календарь для всех операций с датами и не включать в него Date , если это явно не требуется для вашего API. В этом случае вы можете просто преобразовать его при передаче в API.

1
ответ дан 28 November 2019 в 01:42
поделиться

Что ж, вы можете использовать устаревший конструктор. Он устарел более 13 лет и до сих пор работает - никуда не денется. Если вы не хотите этого делать и не хотите использовать стороннюю библиотеку, вам нужно использовать Календарь.

Надеюсь, что в Java 7 будет API нового времени, и вам больше не понадобится сторонний API.

4
ответ дан 28 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: