Frage

Ok, ich will mein Programm machen, das Datum auszudrucken: 1.1.2009

Aber das ist, was es ausdruckt:

Do 1. JANUAR 00.00.00 EST 2009

Von diesem Code

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

Wie kann ich es ändern, so dass es nur 1/1/2009 ausdruckt?

War es hilfreich?

Lösung

Verwenden Sie 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());
}

Sie ruft implizit die toString() Methode, die (richtig) ist den gesamten Inhalt auszudrucken.

Übrigens gibt es keine Notwendigkeit, ein Datum Art und Weise zu konstruieren Sie tun. Der Aufruf getDate() auf einem Calendar gibt ein Date Objekt.

Andere Tipps

Derzeit ist die Date.toString() Methode aufgerufen wird, um die Darstellung des String DateFormat die eine String Darstellung erzeugen wird, die gewünscht wird. Das DateFormat Objekt kann verwendet werden, um eine Date Instanz auf die gewünschte Formatierung zu formatieren, mit der format Methode.

Die einfachste Art und Weise zu erreichen, was erwünscht ist, ist die SimpleDateFormat -Klasse, die ein Konstruktor das zur Ausgabe des Date in einer gewünschten Form einen Format-String annimmt.

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

Output

1/1/2009
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top