String strdate=this.getRequest().getParameter("vehicleInformTime")
System.out.println(strdate);
vehicleInformTime = DateFormate.getDateByStr(strdate);
/**
* 将String转换为Date
* @param str 如果日期str 为原始格式, dateFormat不用指定其格式
* @return
*/
public static Date getDateByStr(String str){
SimpleDateFormat dateFormat=new SimpleDateFormat();
Date date=null;
try {
date=dateFormat.parse(str);
} catch (ParseException e) {
System.out.println("日期转换错误");
e.printStackTrace();
}
return date;
}
strdate 打印出来后为:Sun Jan 02 2011 00:00:00 GMT+0800
日期转换错误
java.text.ParseException: Unparseable date: "Sun Jan 02 2011 00:00:00 GMT+0800"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.jtd.shopcar.util.DateFormate.getDateByStr2(DateFormate.java:47)
at com.jtd.shopcar.action.ViewMaintainLogAction.doaddMaintainLog(ViewMaintainLogAction.java:253)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
new SimpleDateFormat("E MMM dd yyyy HH:mm:ss z",Locale.US).parse(str);
前提是后面跟的是GMT+08:00带冒号的
你要转换成什么格式?你必须指定呀!
[code="java"]
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
[/code]
[quote]String strdate=this.getRequest().getParameter("vehicleInformTime")
System.out.println(strdate); [/quote]
想办法取strdate的值为2011-01-01格式的就能转换了。
1楼的就可以了,
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
yyyy表示年,MM表示月,dd表示月中的哪一天
或者时间更准确一点
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
yyyy表示年,MM表示月,dd表示月中的哪一天(同上)
HH:表示时,mm:分 ,ss:秒
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
Calendar calendar = new GregorianCalendar(pdt, Locale.US);
calendar.set(2011, Calendar.JANUARY, 2, 0, 0, 0);
Date date = calendar.getTime();
根据你提供的字符串够着一个Calendar对象,实际应用中你可以截取字符串然后把这些值动态的设置到Calendar对象中.如果最有不习惯用Calendar也可以通过getTime()方法转换为Date对象进行操作. :)