日期:2014-05-19  浏览次数:20978 次

怎么用js正确输出java的Date对象呢?
例如,java中有个Date对象传入到前台的jsp页面中,js需要对他进行包装
(这一步是必须的,请不要说,直接format之后再输出,我需要的是Date对象,请SimpleDateFormat的支持者们绕一下重新思考这个过程)
java输出的时间格式为:Mon Nov 26 12:32:40 CST 2012,当然啦,这个就是一个普通的日期
现在的问题是,我需要将这样的对象跟js的date对象进行完整的兼容出来

当java输出的日期格式被js的脚本var cdate = new Date(value);
(value是easyui的datagrid中的列的值)
输出的cdate.getHours()居然是2!!!!这个跟我们传入到页面中的12完全不一样,而且日期也变成了27号,
我注意到正常输出alert(new Date());时,这里面有个UTC +0800字样,而我现在传入的value值是CST
请问这个要怎么解决才能让js正确输出java的Date对象值?


------最佳解决方案--------------------
javascript不是有cdate.getUTCHours()吗
你用这个试试
------其他解决方案--------------------
将java的时间转换成毫秒!

Date myDate = new Date(System.currentTimeMillis());
value=String.valueOf(myDate.getDate().getTime());

var cdate = new Date(value);

下面你懂的!


------其他解决方案--------------------
需要借助JS来重新生成Date对象,可借助毫秒数来完成,类似这样:
<% 
    Date ddd = new Date(); // 这里是Java的时间
%>
<script>
    var day = new Date(<%=ddd.getTime()%>);
</script>
------其他解决方案--------------------
http://www.cnblogs.com/mfryf/archive/2012/02/15/2352036.html

看下这个有没有帮助!
------其他解决方案--------------------
这个你必须要转换一下,没法直接兼容的,完全不同的两门语言。
------其他解决方案--------------------
new Date(年,月,日)
------其他解决方案--------------------
OK,本次采用了毫秒数进行转换,已经成功,虽然是我自己先想到的,不过还是感谢各位,散分了.
------其他解决方案--------------------
引用:
javascript不是有cdate.getUTCHours()吗
你用这个试试

这个不可行,因为传入的时候就已经是CST格式的了,所以尚未成功,如果你能试验成功,请记得分享给我