2016-06-07 79 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框架工作,並且工作完美,現在我切換到彈簧,那麼它不起作用 –