복붙노트

[SPRING] Spring MVC의 HttpServletRequest 객체에서 사용자의 시간대를 얻는 다른 방법이 있습니까? [복제]

SPRING

Spring MVC의 HttpServletRequest 객체에서 사용자의 시간대를 얻는 다른 방법이 있습니까? [복제]

시간대에 따라 서버 시간을 사용자 시간으로 변환해야합니다.

HttpServletRequest 객체를 사용하여 시간대를 파악하는 가장 좋은 방법입니까?

Locale clientLocale = request.getLocale();  
Calendar calendar = Calendar.getInstance(clientLocale);  
TimeZone clientTimeZone = calendar.getTimeZone();

해결법

  1. ==============================

    1.불행히도 클라이언트는 데이터를 보내지 않으므로 요청에서 사용자의 시간대를 가져올 수 없습니다. 요청 개체의 로캘은 사용자의 Accept-Language 헤더를 기반으로합니다. "영어"에 대한 올바른 시간대는 무엇입니까?

    불행히도 클라이언트는 데이터를 보내지 않으므로 요청에서 사용자의 시간대를 가져올 수 없습니다. 요청 개체의 로캘은 사용자의 Accept-Language 헤더를 기반으로합니다. "영어"에 대한 올바른 시간대는 무엇입니까?

    두 가지 가능한 접근 방법 :

    대부분의 사이트에서 사용자의 시간대를 요청하거나 날짜를 상대 형식 (예 : 5 시간 전)으로 표시하는 이유는 여기에 대한 간단한 해결책이 아닙니다.

  2. ==============================

    2.HttpServletRequest에서 가져올 수 없습니다. 정보가 없습니다.

    HttpServletRequest에서 가져올 수 없습니다. 정보가 없습니다.

    그러나 JavaScript에서는 다음과 같이 시간대 오프셋을 가져올 수 있습니다.

    var offset = new Date().getTimezoneOffset();
    // ...
    

    이를 사용하여 (ajax) 매개 변수로 서버에 다시 보내거나 렌더링 된 HTML에 변경 사항을 적용 할 수 있습니다. 그러나 나는 이것에 엄격히 의지하지 않을 것입니다. 최소한 최종 사용자가 구성 할 수 있어야합니다.

  3. ==============================

    3.고객에게 올바른 시간대를 입력 할 수있는 드롭 다운 상자를 제공합니다. 그리고 기본적으로 로켈에서 결정한 것을 사용하십시오.

    고객에게 올바른 시간대를 입력 할 수있는 드롭 다운 상자를 제공합니다. 그리고 기본적으로 로켈에서 결정한 것을 사용하십시오.

    어쨌든 : W3C는 W3C 웹 국제화 FAQ에 다음 질문을 가지고 있습니다. HTTP 수락 - 언어 헤더를 사용하여 사용자의 로캘을 결정하는 것이 좋습니다.

  4. from https://stackoverflow.com/questions/6091804/is-there-another-way-to-get-a-users-time-zone-from-a-httpservletrequest-object by cc-by-sa and MIT license