问题描述
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) 问题补充:antiwise 写道
解决方案
new SimpleDateFormat("E MMM dd yyyy HH:mm:ss z",Locale.US).parse(str);前提是后面跟的是GMT+08:00带冒号的
解决方案二:
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对象进行操作.
解决方案三:
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 strdate=this.getRequest().getParameter("vehicleInformTime") System.out.println(strdate); 想办法取strdate的值为2011-01-01格式的就能转换了。
解决方案五:
你要转换成什么格式?你必须指定呀!SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");