-2
백엔드에서 UTC 시간을 일부 생성하고 웹 소켓을 사용하여 Android 애플리케이션으로 보냅니다.Java JodaTime의 시간대 정보가 잘못되었습니다.
문제는 다음과 같습니다. 날짜를 표시 할 때 내 전화가 +3 시간대에 있다고 가정하기 때문에 3 시간 뒤입니다.
아래는 백엔드 코드와 Android 코드 모두에서 발췌 한 것입니다. 이 내가 그것을 처리하고 어떻게 내 안드로이드 응용 프로그램에서
let d = moment.utc().toISOString();
:
는String sendDate = "2017-04-19T15:41:36.758Z"; //this is an example server response
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
dtf.parseLocalDateTime(sendDate).toDate()
문제는
백엔드 코드 (나는 순간 라이브러리를 사용하여 UTC 날짜를 생성하고 어떻게입니다) UTC 날짜가 전화가 현재있는 시간대로 올바르게 표시되거나 변환되지 않으므로 날짜가 항상 3 시간 늦어집니다.
무엇이 누락 되었습니까?
당신은 휴대 전화의 기본'TimeZone' ('DateTimeZone.getDefault()'의 결과를) 확인해 봤어? –
그리고 예상 출력과 비교할 때 출력은 어떻게됩니까? –
'dtf.parseLocalDateTime (sendDate) .toDate (DateTimeZone.UTC)'를 사용해보십시오. 왜냐하면 인수없이 toDate()가 암시 적으로 시스템 시간대 (Joda-Time 데이터 포함)를 사용하기 때문입니다. 그리고 당신의'LocalDateTime'은 분명히 UTC 입력을 기반으로합니다 ... –