<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类型的吧!传毫秒值,这样简单多了!
------解决方案--------------------
同意,如果页面上不用表示出来的话就直接毫秒值得了