2013-07-22 23 views
0

我的客戶端JavaScript應用程序和服務器應用程序在不同的國家運行。我需要同步事件。換句話說客戶端應用程序發送一個URL字符串代表本地日期時間,喜歡的東西:從日期時間轉換爲另一種語言環境日期時間在java

date = new Date() # Mon Jul 22 2013 16:28:34 GMT+0200 (CEST) 

在服務器上(的Linode)側,正在運行java寫的一個小應用程序。我需要在本地服務器的side-machine datetime中轉換此字符串,並通過hibernate存儲到rdbms,以便cron或類似時鐘的應用程序可以從表中讀取此日期並激活新事件並同步到遠程。這必須恰好發生在客戶指定的日期。哪個是完成這個最好的方法?

+0

你的意思時區或區域設置(格式化)?他們完全不同。 – SLaks

+0

我想在服務器端激活事件時恰好在客戶端日期時間爲「Mon Jul 22 2013 16:28:34 GMT + 0200(CEST)」。其實我可以發送數毫秒或其他任何;我只對服務器轉換解決方案感興趣。 –

+0

所以你問如何解析一個字符串? – SLaks

回答

0

如果兩者都有正確的時間和時區,日期對於服務器和客戶端都是相同的,無論它們在哪個時區。

以毫秒爲單位發送客戶端的日期,並在服務器端以java.sql.Date(long)的構造函數接受它。
你在標籤中提到了javascript。所以日期可以通過JavaScript使用new Date();發送,並可以通過服務器使用

new java.sql.Date(client_date); 

在毫秒被接受,客戶端時間將被轉換爲相應的服務器時間。 如果客戶端的時間設置不正確,對於這一點,你可以用毫秒 像時間差 -

long time_difference= new Date()-new Date(client_date); 
long server_time_of_execution=new Date(Client_date_to_execute).getTime()+time_difference; 
相關問題