2013-07-15 3 views
0

서버 날짜 시간과 클라이언트 날짜가 동일한 날짜/시간을 표시하려고합니다. 이 날짜는 일부 일정 별 특징을 달성하는 데 사용됩니다.다른 시간대로 서버 날짜 시간 가져 오기

서버에서
  • 으로 불러 초기 날짜 시간 그냥 계산 시간 date.getTime() 차이 : 나는 다음 단계를 수행하십시오.

  • 서버 시간대와 클라이언트의 시간대가 모두 동일한 경우 그것은 잘 작동

GWT의 타이머를 사용하여 클라이언트 날짜에

  • 업데이트 클라이언트 시간을 시간은 diff를 추가합니다. 하지만 그것은 다른 시간대로 나에게 잘못된 계산을 제공합니다. 내 클라이언트 시간이 인도 시간대 인 경우 는

    은 ((UTC는 + 05 : 30) 첸나이, 콜카타, 뭄바이, 뉴 델리)

    :

    그냥 예

    및 단절 시간대는

    입니다

    ((UTC-08 : 00) 태평양 표준시 (미국 & 캐나다))

    이렇게 잘못된 서버 날짜를 계산합니다.

    자주 서버 요청없이 서버와 클라이언트의 다른 시간대로 현재 서버 시간을 표시하려면 어떻게해야합니까?

    참고 : 솔루션은 표준시 시간대 여야합니다.

    편집 :

    나는 RPC 메커니즘 및 서버에서 클라이언트로 new Date().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); 
    
  • +0

    추가 정보를 제공하려면 질문을 편집하십시오. 너 뭐 해봤 니? 클라이언트와 서버 모두에서 순수 Java입니까? 그들 사이에 어떻게 가치를 전달하고 있습니까? "클라이언트"라고 말하면 브라우저에서 클라이언트 자바 스크립트를 의미합니까? 완전히 다릅니다. 정확하십시오. 감사. –

    +0

    '서버와 클라이언트는 서로 다른 두 대의 컴퓨터를 의미합니다.'서버 머신이 다른 시간대를 갖고 있고 그 시간이 클라이언트 컴퓨터에 표시되어야하는 경우. 전쟁은 기술면에서 두드러집니다. 그것은 순수한 자바 스크립트입니다. 내 질문을 편집합니다. – iMBMT

    답변

    0

    는이 같은 몇 가지 일을하려고 했습니까?

    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 
    
    관련 문제