2016-11-14 2 views
0

NSDateFormatter의 dateFromString을 사용 중입니다. 문자열이 주어지면 다른 시간이 나옵니다.iOS 'dateFromString'다른 반품 하시겠습니까?

코드

NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; 
dateformatter.dateFormat = @"yyyy-MM-dd"; 
NSDate *firstDate = [dateformatter dateFromString:@"2017-06-02"]; 
NSDate *secondDate = [dateformatter dateFromString:@"2016-11-02"]; 

출력 나는 그들이 동일한 시간이없는 이유를 궁금해

firstDate: 2017-06-01 22:00:00 +0000 
secondDate: 2016-11-01 23:00:00 +0000 

?

+2

디버거에 날짜를 인쇄 할 때마다 인쇄 된 날짜가 UTC 형식으로 인쇄되므로 디버거에 인쇄 된 날짜는 추후 테스트하려는 경우 전달 된 날짜를 UTC로 변환 한 후 동일하게 변환합니다 date를 String으로 변환하여 디버거에 출력합니다. – Rajat

답변

1

당신은 두 날짜의 시간을 지정하지 않은, 그래서 그들은 초기화되었습니다 현지 시간 자정에서 자정까지. 인쇄했을 때 그들은 UTC로 표시되었습니다. 현지 시간대 (중앙 유럽 표준시)는 2016 년 3 월 27 일에서 2016 년 10 월 30 일까지 일광 절약 시간을 관찰했습니다. 따라서 일광 절약 시간제로 적용된 6 월 자정 날짜는 UTC (22:00:00)보다 2 시간 앞서고, 일광 절약 시간에 포함되지 않은 11 월 자정 날짜는 UTC (23:00:00)보다 1 시간 빠릅니다.