Должны ли мы использовать объект Date в Java? - PullRequest
3 голосов
/ 28 апреля 2010

Должны ли мы использовать объект de java.util.Date в java? В нем так много устаревших методов, что немного раздражает необходимость использовать сложный метод для чего-то, что должно быть настолько простым.

Я использую что-то глупое для эмуляции getDate (), например:

    public static int toDayMonth (Date dt)
{
    DateFormat df = new SimpleDateFormat("dd");
    String day = df.format(dt);
    return Integer.parseInt(day);
}

Это должно быть лучше ...

Ответы [ 4 ]

5 голосов
/ 28 апреля 2010

Может быть, это вопрос предпочтений, но я использую Joda Time .

Глядя на API DateTime от Joda Time, DateTime#dayOfMonth может быть то, что вы искали.

DateTime dt = new DateTime();
// no args in constructor returns current date and time
DateTime.Property day = dt.dayOfMonth();
System.out.println(day.get()); // prints '27'
3 голосов
/ 28 апреля 2010

Нет, вы больше не должны использовать java.util.Date.

GregorianCalendar - это альтернатива, которую вы можете использовать:

GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.MONTH, Calendar.JUNE);
cal.set(Calendar.DAY_OF_MONTH, 27);
cal.set(Calendar.YEAR, 2010);
3 голосов
/ 28 апреля 2010

Класс Java Date известен тем, что он запутанный и неуклюжий. Я бы порекомендовал посмотреть на популярную библиотеку "Joda Time":

http://joda -time.sourceforge.net /

2 голосов
/ 28 апреля 2010

javadoc для каждого метода говорит, что он был заменен. Чтобы подражать getDate(), используйте:

Calendar.get(Calendar.DAY_OF_MONTH)

РЕДАКТИРОВАТЬ : Полный пример:

public static int toDayMonth (Date dt) {
    Calendar c = new GregorianCalendar();
    c.setTime(dt);
    return c.get(Calendar.DAY_OF_MONTH);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...