Постоянная дата GregorianCalendar
-
06-07-2019 - |
Вопрос
Хорошо, я хочу, чтобы моя программа распечатывала дату:01.01.2009
Но вот что он выводит:
Четверг, 1 января 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?
Решение
Используйте 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 ()
в Календаре
возвращает объект Date
.
Другие советы
В настоящее время 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