0

OK、プログラムに日付を出力させたい: 1/1/2009

しかし、これはそれが出力するものです:

2009 年 1 月 1 日木曜日 00:00:00 EST

このコードから

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

2009 年 1 月 1 日のみを印刷するように変更するにはどうすればよいですか?

4

2 に答える 2

2

使用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ます。

于 2009-09-13T02:35:55.793 に答える
2

現在、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
于 2009-09-13T02:38:36.327 に答える