GregorianCalendar常数日期

时间:2009-09-13 02:27:50

标签: java gregorian-calendar

好的,我想让我的程序打印出日期:1/1/2009

但这就是打印出来的内容:

Thu Jan 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);
}

如何更改它以便仅打印出1/1/2009?

2 个答案:

答案 0 :(得分: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个对象。

答案 1 :(得分:2)

目前,正在调用Date.toString()方法以显示GregorianCalendar实例的String表示。

需要做的是创建一个DateFormat,它将产生所需的String表示。 DateFormat对象可用于使用format方法将Date实例格式化为所需的格式。

实现所需目标的最简单方法是使用SimpleDateFormat类,其中constructor which takes a format string以所需格式输出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