在java中从datetime转换为另一个locale datetime

时间:2013-07-22 14:45:51

标签: java javascript

我的客户端javascript应用和服务器应用在不同国家/地区运行。我需要同步事件。换句话说,客户端应用程序发送一个表示本地日期时间的URL字符串,如:

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

在服务器(linode)端,运行一个用java编写的小应用程序。我需要在本地服务器端机日期时间转换此字符串,并通过hibernate存储到rdbms,以便cron或类似时钟的应用程序可以从表中读取此日期并激活新事件并同步到远程。这必须恰好在客户指定的日期发生。这是实现这一目标的最佳方法?

1 个答案:

答案 0 :(得分:0)

如果两者都有正确的时间和时区,那么服务器和客户端的日期(毫秒)将是相同的,无论它们在什么时区。

以毫秒为单位从客户端发送日期,并在java.sql.Date(long)构造函数的服务器端接受它 你在标签中提到了javascript。所以Date可以使用new Date();通过javascript发送,服务器可以使用

接受
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;