2016-06-07 83 views
2

我正在开发一个java应用程序。在这我使用Restangular服务,角js和弹簧框架工作。 我正在从js的restangular调用传递DateTime对象。我的restangular代码是 -将java的DateTime对象转换为js中的字符串

@GET 
@Path("/try") 
@Timed 
public DateTime create() { 
    return new DateTime("2016-05-30T12:10:30.407+05:30"); 
} 

而在js我想这个对象作为字符串。我的js代码是 -

$scope.try = function() { 
    console.log("Hi") 
    Restangular.one('tasks/try').get().then(function (data) { 
     console.log(data); 
    }); 
}; 

在这段代码返回的restangular对象是在形式上2016-05-30T12:10:30.407+05:30但JS我收到它作为[2016, 6, 2, 16, 55, 52, 931] 我能做些什么,以便在JS,我得到这个日期对象2016-05-30T12:10:30.407+05:30

在此先感谢。

+0

你使用弹簧mvc或jersy? – Jaiwo99

+0

我使用了角度js v1.3.16,运动衫客户端v2.22.2和spring。 –

回答

0

您可以使用

data = [2016, 6, 2, 16, 55, 52, 931]; 

var thisDate = new (Function.prototype.bind.apply(Date, [null].concat(data))); 

在这里,我们基本上是通过Date功能与您的数据阵列中的所有元素编程。

ALTER

这种方法会有点长,但会给你一个时间戳,通过它可以转换成任何甲

function convertToTimeStamp (array) { 
    var str = array[0] + "," + array[1] + "," + array[2]; 
    _ts = new Date(str).getTime() 
    timeStamp = _ts + (array[3]*3600 + array[4]*60 + array[5])*1000 + array[6]; 
    return timeStamp; 
} 

现在你可以调用convertToTimeStamp(array)获得Timestamp值

您可以将时间戳转换为任何格式,将其转换为日期对象 new Date(timeStamp)

+0

它给出无效的日期 –

+0

你确定你正在传递数据,因为它完全为我工作。 – MegaMind

+0

是的,我确定。因为之前我正在使用dropwizard框架工作,并且工作完美,现在我切换到弹簧,那么它不起作用 –