Objective-c를 사용하여 개발 한 기존 iOS 응용 프로그램에서 문제가 발생했습니다.RFC 3339 날짜 포맷터 - 출력 날짜가 하루 씩 이동 한 이유는 무엇입니까?
문제 : 출력 날짜가 PST 시간대에만 1 일 뒤로 이동합니다.
날짜를 짧은 형식으로 변환하기위한 코드를 작성했습니다.
-(NSString *)getDisplayDateFormat:(NSString *)dateString
{
NSLocale *enUSPOSIXLocale;
NSDateFormatter *inputformatter = [[NSDateFormatter alloc] init];
enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[inputformatter setLocale:enUSPOSIXLocale];
inputformatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
[inputformatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssSSSZZZZ"];
NSDate *date= [inputformatter dateFromString:dateString];
NSDateFormatter *OutPutformatter = [[NSDateFormatter alloc] init];
[OutPutformatter setDateFormat:@"yyyy-MM-dd"];
NSString *dispalyDateString = [OutPutformatter stringFromDate:date];
return dispalyDateString;
}
입력 날짜 열 = 2017-01-16T00 : 00 : 00-06 : 00
UTC 형식 : 날짜 = 2017년 1월 16일 6시 0분 0초 0000
출력 날짜 열 = 2017-01-15
문제를 해결하는 데 도움을주세요.
잘못이 아닙니다. 당신이보고있는 것이 기대됩니다. 그리고 그것은 PST (미국 서부 해안)에만있는 것이 아닙니다. -6보다 큰 시간대 오프셋 (offset)을 가진 모든 장치에 대해 1 월 15 일을 표시합니다 (추가 서쪽). – rmaddy
2017-01-16T00 : 00 : 00-06 : 00 (예 : 시카고에서 1 월 16 일 자정). 1 월 15 일 로스 앤젤레스에서 오후 10시에 개최되었습니다. 따라서 귀하의 결과물은 의미가 있습니다. 문제는 더 넓은 목적이 무엇인가하는 것입니다. 당신은 무슨 일이 일어 났는지 상관하지 않는다고 말하고 있습니까? 그렇다면 날짜 문자열에 시간 부분을 포함하면 안됩니다. 뒤로 물러나서 질문을 편집하여보다 광범위한 디자인 목표를 설명해야하며이를 해결하는 방법을 조언 할 수 있습니다. – Rob
설명해 주셔서 감사합니다. 서버에서 "2017-01-16T00 : 00 : 00-06 : 00"날짜가 표시되며 2017-01-16로 변환해야합니다. 친절하게 제안하십시오. – Raj