java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(DateFormat.java:279) at java.text.Format.format(Format.java:133) at org.apache.jsp.usermoneyaction_jsp._jspService(usermoneyaction_jsp.java:90) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
public static void getCurrentDateTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(calendar.getTime()); calendar.add(Calendar.MONTH,1); String currentDate = sdf.format(date); String futureDate = sdf.format(calendar.getTime()); System.out.println("currentDate="+currentDate); System.out.println("futureDate="+futureDate); }
我自已写了一个类,发给你 package com.date.hsq;import java.util.Calendar; import java.util.GregorianCalendar;public class FormatDate{ private static final String [] WEEKNAME={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; private static final String [] DATENAME={"年","月","日","时","分","秒"}; Calendar calendar=null; public static final int YEAR=0;//用来标识年 public static final int MONTH=1; public static final int DAY=2; public static final int HOUR=3; public static final int MINUTE=4; public static final int SECOND=5; //构造函数,产生一个日历对象 public FormatDate(){ calendar = new GregorianCalendar(); } public FormatDate(Calendar calendar){ this.calendar=calendar; } //年 public int getYear(){ return calendar.get(Calendar.YEAR); } //月 public int getMonth(){ return calendar.get(Calendar.MONTH)+1; } //日 public int getDay(){ return calendar.get(Calendar.DAY_OF_MONTH); } //得到数字型的星期数 public int getWeek(){ return calendar.get(Calendar.DAY_OF_WEEK)-1; } //得到汉字型的星期数 public String getChweek(){ int week= getWeek(); return WEEKNAME[week]; } public int getHour(){ return calendar.get(Calendar.HOUR_OF_DAY); } public int getMinute(){ return calendar.get(Calendar.MINUTE); } public int getSecond(){ return calendar.get(Calendar. SECOND); } //得到年月日时分秒格式 public String getDate(){ return getYear()+"年"+getMonth()+"月"+getDay()+"日"; } /* 得到某种格式的时间样式 @param style 时间的样式 如:"-" ,":"等 */ public String getDate(String style){ if(style==null){ return getDate(); } return getYear()+style+getMonth()+style+getDay(); } public String getTime(){ return getHour()+"时"+getMinute()+"分"+getSecond()+"秒"; } public String getTime(String style){ if(style==null){ return getTime(); } return getHour()+style+getMinute()+style+getSecond(); } /* 用来对年月日时分秒进行增加 @param times 时间的标识,如:FormatDate.YEAR或0则为在现有的年上进行增加 @param num 表示增加的数量, */ public void add(int times,int num){ switch(times){ case YEAR: calendar.add(Calendar.YEAR,num);break; case MONTH: calendar.add(Calendar.MONTH,num);break; case DAY: calendar.add(Calendar.DAY_OF_MONTH,num);break; case HOUR: calendar.add(Calendar.HOUR_OF_DAY,num);break; case MINUTE: calendar.add(Calendar.MINUTE,num);break; case SECOND: calendar.add(Calendar.SECOND,num);break; default : System.out.println("函数的第一个参数不对"); } } public String toString(){ return getDate()+" "+getTime(); } public static void main(String[] args){ //注意月份的使用1为二月,向前累加, //指定一个日期 //GregorianCalendar calendar = new GregorianCalendar(2003,1,30); //FormatDate fd=new FormatDate(calendar); //使用当前日期,取系统日期 FormatDate fd=new FormatDate(); fd.add(5,8000); System.out.println(fd.getYear()); System.out.println(fd.getMonth()); System.out.println(fd.getDay()); System.out.println(fd.getWeek()); System.out.print(fd.getDate("-")+" "); System.out.println(fd.getChweek()); System.out.println(fd.getHour()); System.out.println(fd.getMinute()); System.out.println(fd.getSecond()); System.out.println(fd.getTime(":")); System.out.println(fd.toString()); } }
cal.add(Calendar.MONTH,1);
f.format(now);
<%@ page import="java.util.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>时间</title>
</head>
<body bgcolor=black>
<center>
<font size=4 color=white>当前时间</font>
<hr><br>
<font color=yellow face="楷书">
<%
Date t=new Date();
int hour=t.getHours();
String[] w={"日","一","二","三","四","五","六"};
if(hour>=0&&hour<12)
out.println("早上好");
else
out.println("下午好");
out.println("\n今天是"+(t.getYear()+1900)+"年"+(t.getMonth()+1)+"月"+(t.getDay())+"日星期"
+w[t.getDay()]);
%>
<hr>
<hr>
</font>
</center>
</body>
</html>
怎么显示是11月份的啊,是不是国外的日期都要加1啊,
at java.text.DateFormat.format(DateFormat.java:279)
at java.text.Format.format(Format.java:133)
at org.apache.jsp.usermoneyaction_jsp._jspService(usermoneyaction_jsp.java:90)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(calendar.getTime());
calendar.add(Calendar.MONTH,1);
String currentDate = sdf.format(date);
String futureDate = sdf.format(calendar.getTime());
System.out.println("currentDate="+currentDate);
System.out.println("futureDate="+futureDate);
}
package com.date.hsq;import java.util.Calendar;
import java.util.GregorianCalendar;public class FormatDate{
private static final String [] WEEKNAME={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
private static final String [] DATENAME={"年","月","日","时","分","秒"};
Calendar calendar=null;
public static final int YEAR=0;//用来标识年
public static final int MONTH=1;
public static final int DAY=2;
public static final int HOUR=3;
public static final int MINUTE=4;
public static final int SECOND=5; //构造函数,产生一个日历对象 public FormatDate(){
calendar = new GregorianCalendar(); }
public FormatDate(Calendar calendar){
this.calendar=calendar;
}
//年
public int getYear(){
return calendar.get(Calendar.YEAR);
}
//月
public int getMonth(){
return calendar.get(Calendar.MONTH)+1;
}
//日
public int getDay(){
return calendar.get(Calendar.DAY_OF_MONTH);
}
//得到数字型的星期数
public int getWeek(){
return calendar.get(Calendar.DAY_OF_WEEK)-1;
}
//得到汉字型的星期数
public String getChweek(){
int week= getWeek();
return WEEKNAME[week];
}
public int getHour(){
return calendar.get(Calendar.HOUR_OF_DAY);
}
public int getMinute(){
return calendar.get(Calendar.MINUTE);
}
public int getSecond(){
return calendar.get(Calendar. SECOND);
} //得到年月日时分秒格式
public String getDate(){
return getYear()+"年"+getMonth()+"月"+getDay()+"日";
}
/*
得到某种格式的时间样式
@param style 时间的样式 如:"-" ,":"等
*/
public String getDate(String style){
if(style==null){
return getDate();
}
return getYear()+style+getMonth()+style+getDay(); }
public String getTime(){
return getHour()+"时"+getMinute()+"分"+getSecond()+"秒";
}
public String getTime(String style){
if(style==null){
return getTime();
}
return getHour()+style+getMinute()+style+getSecond(); }
/*
用来对年月日时分秒进行增加
@param times 时间的标识,如:FormatDate.YEAR或0则为在现有的年上进行增加
@param num 表示增加的数量,
*/
public void add(int times,int num){
switch(times){
case YEAR:
calendar.add(Calendar.YEAR,num);break;
case MONTH:
calendar.add(Calendar.MONTH,num);break;
case DAY:
calendar.add(Calendar.DAY_OF_MONTH,num);break;
case HOUR:
calendar.add(Calendar.HOUR_OF_DAY,num);break;
case MINUTE:
calendar.add(Calendar.MINUTE,num);break;
case SECOND:
calendar.add(Calendar.SECOND,num);break;
default :
System.out.println("函数的第一个参数不对");
}
}
public String toString(){
return getDate()+" "+getTime(); }
public static void main(String[] args){
//注意月份的使用1为二月,向前累加,
//指定一个日期
//GregorianCalendar calendar = new GregorianCalendar(2003,1,30);
//FormatDate fd=new FormatDate(calendar);
//使用当前日期,取系统日期
FormatDate fd=new FormatDate();
fd.add(5,8000);
System.out.println(fd.getYear());
System.out.println(fd.getMonth()); System.out.println(fd.getDay());
System.out.println(fd.getWeek());
System.out.print(fd.getDate("-")+" ");
System.out.println(fd.getChweek());
System.out.println(fd.getHour());
System.out.println(fd.getMinute());
System.out.println(fd.getSecond()); System.out.println(fd.getTime(":"));
System.out.println(fd.toString()); }
}