2011-08-01 2 views
2

주어진 타임 스탬프에 대해 현지화 된 날짜를 검색하려고합니다. 내 코드 8 월 2011 년 1 일 이후이Android Time.format ("% a")이 (가) 잘못된 요일을 지정했습니다.

String timestamp = "2011-08-01T15:55:03.000+02:00"; 
Time time = new Time(); 
time.parse3339(timestamp); 
// In strftime format "%a" should be the abbreviated weekday name 
// according to the current locale. 
String result = time.format("%a") 

같은 것이 결과 문자열은 "월"(영어 로케일을 가정)해야한다 월요일입니다 만, 대신은 "일"입니다!

+0

parse3339가 실패 할 수 있습니까? '0'을 볼 수 있습니까? 날짜를 앞에 놓고 'mon'인지 확인하십시오. – ethrbunny

답변

5

time.normalize() 모두 올바른 코드가 0

것 평일 yearDay, isDst 및 gmtoff 위해 별도로 값을 호출해야() 어떤 경우에는 시간이 time.parse3339으로 UTC로 변환 할 수 있음을 지적하여 바른 길에 나를 넣어 페미에

time.parse3339(timestamp); 
time.normalize(false); 
String localizedDayOfWeek = time.format("%a") 

감사합니다.

+0

감사합니다. 일요일에 모두 돌아 왔습니다. 이제 각 날짜 변경 후 정상화하면 작동합니다. –

1

당신은 반환 값을 확인해야 다음 javadoc에서 :

Returns true if the resulting time value is in UTC time.

을 구문 분석이를 얻을 수 있습니다 일요일에 해당하는 UTC 시간을 반환합니다. 위의 예제를 통해 어떻게 가능할 지 확신 할 수 없지만이 작업을 수행 할 다른 작업은 생각할 수 없습니다.

0

실제로 주어진 시간 소인을 분석해야합니까, 아니면 지금 날짜를 가져 오시겠습니까? 후자를 사용하는 경우에는 :

Time time = new Time(); 
time.setToNow(); 
String result = time.format("%a"); 
관련 문제