Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果服务器位于不同的位置,如何节省客户机时间_Java_Web Services_Date_Datetime - Fatal编程技术网

Java 如果服务器位于不同的位置,如何节省客户机时间

Java 如果服务器位于不同的位置,如何节省客户机时间,java,web-services,date,datetime,Java,Web Services,Date,Datetime,成功预订后,我必须将预订日期和时间保存在数据库中。我试过如下方法 if(bookingSuccess){ DateTime bookingDate = new DateTime (); storeDate(bookingDate ); } storeDate(DateTime date){ .... } 但是如果服务器在一个位置,而客户机在另一个位置,那么它将无法工作。请对此提出任何解决方案。在客户端运行java脚本代码以获取当前时间 var d = new Date(); 保存预

成功预订后,我必须将预订日期和时间保存在数据库中。我试过如下方法

if(bookingSuccess){
DateTime bookingDate = new DateTime ();
storeDate(bookingDate );
} 


storeDate(DateTime date){

....

}

但是如果服务器在一个位置,而客户机在另一个位置,那么它将无法工作。请对此提出任何解决方案。

在客户端运行java脚本代码以获取当前时间

var d = new Date();
保存预订条目时,您可以获取用户机器的当前时间并将其保存在变量中。如果预订成功,则节省时间

步骤:

  • 获取客户的预订详细信息和当前时间
  • 节省预订
  • 预订成功后,如果服务器和客户端位于不同的位置,则可以节省客户端时间

如果您使用的是关系数据库(Mysql、Oracle、Postgress、Sqlite等)和Java, 执行以下操作
1) 在预订详情表中,您可以有一个带有数据类型时间戳的预订时间字段
2) 如果您正在使用像JPA这样的ORM工具,请使用Hibernate
i) transaction.begin()
ii)将预订详情插入db,日期必须为

       Date bookingDate=new Date();

iii) transaction.commit();
iV) If error transaction.rollback();
3) 如果您没有使用ORM
插入到db directlu中

这样您就有了一个常规的web应用程序客户机-服务器体系结构?而且,你说它不工作是什么意思,你会得到一个例外是日期推迟,提前,根本没有保存…等等。我有一双眼睛。问题是它节省了服务器时间而不是客户机时间。然后你就有了sumit jain的答案。使用客户端站点脚本获取时间,然后将其发送到服务器。很明显,服务器不计算客户端时间。将时间保存为UTC,然后让客户端将时间转换为本地时间。简单而具体。。。我必须获取客户端机器时间并将其存储在我的服务器中。不建议依赖客户端的时钟来实现这一点。客户可能会在几分钟、几小时甚至几年内出错。使用你知道是正确的服务器时钟。是的,你是正确的,我们不应该依赖客户机。我们可以做的是得到客户端的时区,然后计算服务器上的时间。。。对,对。如前所述,在服务器上以UTC时区存储事件时间。这样,您可以轻松地对所有事件的时间进行排序。只有当代码向用户显示时间时,才应将时间转换为用户自己的时区。