当前位置: 代码迷 >> Java Web开发 >> 高手帮小弟我看看这个String如何转换成Date类型的值
  详细解决方案

高手帮小弟我看看这个String如何转换成Date类型的值

热度:100   发布时间:2016-04-16 22:10:16.0
高手帮我看看这个String怎么转换成Date类型的值?
<fmt:formatDate value=<%=new Date()%> pattern="yyyy-M-d"/>
一个浏览器客户端自动生成的时间发送到Servlet服务器, 如何获取呢? 因为Servlet取得的任何值都是String对象, 我最终要把这个日期值通过vote这个实体对象的setter方法赋值, 问题就出在, 不懂怎样把一个String对象转换成Date类型, 下面的代码里我用了<%=new Date()%>, 传到服务器后这个时间值就不对了, 出现下面错误:
java.text.ParseException: Unparseable date: "Sat"



<table border="1" align="center">
<input type="hidden" name="voteDate" value="<fmt:formatDate value=<%=new Date()%> pattern="yyyy-M-d"/>"/>
<tr><td colspan="2"  align="center">旅游投票</td></tr>
<tr><td>台湾日月潭</td><td><input type="radio" name="sid" value="1" /></td></tr>
<tr><td>阿拉斯加滑雪</td><td><input type="radio" name="sid" value="2" /></td></tr>
<tr><td>印尼巴厘岛</td><td><input type="radio" name="sid" value="3" /></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="投票"></td></tr>
</table>



String voteDate = request.getParameter("voteDate");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = df.format(voteDate);
String dateStr = df.format(voteDate);
Date date;
try {
date = sdf.parse(voteDate); ///这个地方报错: java.text.ParseException: Unparseable date: "Sat"
vote.setVoteDate(date);


------解决方案--------------------
应该是指定的日期格式与得到的不一致。
------解决方案--------------------
你首先把你后台接受到的值打印出来看看是什么错误呢?一般这种转换异常是由于格式的原因,其实是在不行嘛,你就写个javascript代码为Input中name=“voteDate"的属性赋值就行了嘛,然后后台获得值之后,在转一下就行了呀
javascript代码:
var d=new Date();
document.getElementsByName("voteDate")[0].value=d.toString();

简单至极,你试一试嘛


------解决方案--------------------
yyyy-MM-dd HH:mm:ss    ,,不是应该这样写么?  yyyy-MM-dd HH24:mi:ss,,
------解决方案--------------------
你看下获取的数据是什么 。
------解决方案--------------------
获取日期在js里是这样的
jQuery(function($) {
           var myDate = new Date();
           //var years=myDate.getFullYear();   
           //var months=myDate.getMonth();      
           //之后可以拼接成自己想要的格式
           var str="";
           str+=XXX+"SS"+XXX;
          //输入框加个Id="time"
         document.getElementById('time').value = str;
});
这样初始化之后就可以在输入框显示出符合格式的时间了

 document.getElementById('month').value = months;
------解决方案--------------------
jQuery(function($) {
  var myDate = new Date();
  var years=myDate.getFullYear();   
          var months=myDate.getMonth();      
              //  想要什么格式自己拼接就可以了  ,var str="";str+=XXX;
               //输入框加个id就可以了,这样页面初始化之后就会有符合格式的了
               document.getElementById('year').value = years;
 
});
------解决方案--------------------
<fmt:formatDate value=<%=new Date()%> pattern="yyyy-MM-dd HH:mm:ss"/>

这样呢
------解决方案--------------------
你传过去的日期格式应该不是yyyy-MM-dd HH:mm:ss类型的吧!传毫秒值,这样简单多了!
------解决方案--------------------
引用:
你传过去的日期格式应该不是yyyy-MM-dd HH:mm:ss类型的吧!传毫秒值,这样简单多了!


同意,如果页面上不用表示出来的话就直接毫秒值得了
  相关解决方案