Java 获取具有不同时区的服务器日期时间
我想向与服务器日期时间状态相同的客户端显示服务器日期时间。此日期用于实现某些计划方面的功能。我执行以下步骤:Java 获取具有不同时区的服务器日期时间,java,datetime,Java,Datetime,我想向与服务器日期时间状态相同的客户端显示服务器日期时间。此日期用于实现某些计划方面的功能。我执行以下步骤: 从服务器获取初始日期和时间,并仅计算时间 date.getTime()difference 将时间差添加到客户端日期时间 使用GWT的计时器更新客户端时间 当服务器时区和客户端时区都相同时,它工作正常。但它给了我不同时区的错误计算 举个例子: 如果我的客户时间是印度时区 ((UTC+05:30)新德里孟买加尔各答钦奈) 及 服务器时区为 ((UTC-08:00)太平洋时间(美国和加拿
- 从服务器获取初始日期和时间,并仅计算时间
differencedate.getTime()
- 将时间差添加到客户端日期时间
- 使用GWT的计时器更新客户端时间
newdate().getTime()
。
在成功方法中,客户端代码:
final String serverDate;
final DateTimeFormat fmt = DateTimeFormat.getFormat(dateFormat);
if(dateFormat!=null){
serverDate = fmt.format(result.getServerDate());
}else{
serverDate = result.getServerDate().toString();
}
setDateTime(serverDate,widget);
final long dateDiff = result.getServerDate().getTime()-new Date().getTime();
Timer timer = new Timer() {
@Override
public void run() {
long currenrDate=new Date().getTime()+dateDiff;
Date date=new Date(currenrDate);
String serverDate = fmt.format(date);
setDateTime(serverDate,widget);
WorkFlowSessionFactory.putValue(WorkFlowSesisonKey.SERVER_DATE_TIME,date);
}
};
timer.scheduleRepeating(10000);
你试过这样的东西吗
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
f.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date=new Date();
System.out.println(f.format(date)); // current UTC time
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR_OF_DAY, 5);
cal.add(Calendar.MINUTE, 30);
System.out.println(f.format(cal.getTime()));// current client side time in UTC
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date);
cal2.add(Calendar.HOUR_OF_DAY, -8);
cal2.add(Calendar.MINUTE, 00);
System.out.println(f.format(cal2.getTime()));// current server side time in UTC
请编辑您的问题以提供其他详细信息。你试过什么?客户端和服务器上都是纯Java吗?你如何在他们之间传递价值观?当你说“客户端”时,你是指浏览器中的客户端JavaScript吗?这是完全不同的。请准确点。谢谢。
服务器和客户端意味着两台不同的机器
如果服务器机器有不同的时区,我需要在客户端机器上显示该时间。战争在gwt技术中积累。这是纯java脚本。我编辑我的问题。