好的,我想让我的程序打印出日期: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?
答案 0 :(得分:2)
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