약 1 시간 동안이 작업을 시도했지만 정상적으로 작동하지 않습니다.Android : 날짜 문자열의 시간대 변경
기본적으로 데이터베이스에서 날짜 문자열을 읽는 중입니다. 형식은 yyyy-MM-dd HH : mm : ss입니다 (2012-03-01 14:32:00).
이 시점에서 내가 가진 모든 문자열은 시간대 정보가 아닙니다. 이 시간은 우리 서버에서 만들어지며 궁극적으로는 장치 데이터베이스에 저장됩니다. 동부 표준시임을 알았습니다. 내가 시간을 로그인 할 때 그래서 2012-03-01 10시 18분 14초을 보여줍니다
SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sourceFormat.setTimeZone(TimeZone.getTimeZone("EST"));
Date parsed = sourceFormat.parse("2012-03-01 10:18:14");
TimeZone tz = TimeZone.getDefault();
SimpleDateFormat destFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
destFormat.setTimeZone(tz);
String result = destFormat.format(parsed);
Log.v("TZ", result);
내 에뮬레이터 EST이며, 올바른 :
그래서 나는 기본적으로 다음과 같은 코드를 시도했다.그러나 미국/로스 엔젤레스라고 sourceFormat의 표준 시간대를 변경하면 2012-03-01 05:18:14의 결과를 얻습니다.
저는 전문가는 아니지만 로스 엔젤레스가 몬트리올 (우리 사무실이있는 EST)보다 3 시간 늦을 거라 확신합니다. 그래서 시간이 걸릴 경우 2012-03-01 10:18:14 미국/로스 앤젤레스 시간으로 전화 한 다음 EST로 변환하십시오. 2012-03-01 13:18:14.
무슨 일입니까?
도움을 주시면 감사하겠습니다.
고마워요.
실제 장치에서 테스트 할 수 있습니까? 때로는 에뮬레이터가 파멸합니다. – yorkw
예 장치에서 테스트 할 수 있습니다. 내일 입력하는 즉시 시도해 보겠습니다. 에뮬레이터가 항상 실제처럼 작동하지는 않지만 현재 시간은 내 바탕 화면에 그대로 표시된다는 점을 이해합니다. – PaulG