GregorianCalendar постоянная дата - PullRequest
       19

GregorianCalendar постоянная дата

0 голосов
/ 13 сентября 2009

Хорошо, я хочу, чтобы моя программа распечатала дату: 1/1/2009

Но это то, что он печатает:

Чт 01 января 00:00:00 EST 2009

Из этого кода

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart()
{
    startDate.setLenient(false);
    Date date = new Date(startDate.getTimeInMillis());
    System.out.println(date);
}

Как я могу изменить его, чтобы он печатался только 01.01.2009?

Ответы [ 2 ]

2 голосов
/ 13 сентября 2009

В настоящее время вызывается метод Date.toString() для отображения String представления GregorianCalendar экземпляра.

Что нужно сделать, это создать DateFormat, который даст желаемое представление String. Объект DateFormat можно использовать для форматирования экземпляра Date до требуемого форматирования с использованием метода format.

Самый простой способ достичь желаемого - использовать класс SimpleDateFormat, который имеет конструктор , который принимает строку формата для вывода Date в нужном форма.

Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
DateFormat df = new SimpleDateFormat("M/d/yyyy");
System.out.println(df.format(calendar.getTime()));

выход

1/1/2009
2 голосов
/ 13 сентября 2009

Использование SimpleDateFormat:

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart() {
  startDate.setLenient(false); 
  DateFormat df = new SimpleDateFormat("d/M/yyyy");
  df.format(startDate.getDate());
}

Вы неявно вызываете метод toString(), который (правильно) распечатывает все содержимое.

Кстати, нет необходимости строить дату так, как вы делаете. Вызов getDate() для Calendar возвращает объект Date.

...