我的 java 脚本应用程序使用 .net Web 服务从后端获取数据。除了日期/时间转换外,一切正常。我需要将服务返回的纪元日期转换为用户的本地浏览器日期。
Web 服务以以下格式返回日期,
/Date(1335341422660-0500)/
这就是我将其转换为人类可读日期所做的工作,
我去掉连字符 (-) 之后的所有内容,并使用剩余的数据进行日期转换
var dateVal=dateField.replace(/-.*\)/g,')');
var date = new Date(parseFloat(dateVal.substr(6)));
var dateArray=date.toString().split(" ");
if(dateArray.length>3){
timeZone=("("+dateArray[4])+")"
}
var month=date.getMonth() + 1;
var year=date.getFullYear();
var date=date.getDate();
var hours= date.getHours();
var offset=date.getTimezoneOffset();
var finalDateStr=(year+"-"+month+"-"+dateValue)+" "+hours+":"+
minutes+":"+seconds+" "+timeZone;
对于上述纪元值,预期日期为,
2012 年 4 月 24 日晚上 9:10:22 - 此日期显示在 .net 应用程序中,该应用程序实际上是在创建/更新新项目时将此日期插入 MS SQL 服务器的源应用程序。他们将 SQL 服务器日期转换为本地日期(使用 .net)并在 UI 中显示。
但是当我使用上面的脚本形成日期时,我得到的值是,
2012-4-25 4:10:22 (EDT)(比上述日期多 7 小时)。
我不确定我错在哪里..有人可以帮我解决这个问题吗?