2014-03-19 1 views
0

시뮬레이터에서 iPhone 디바이스와 비교하여 dateWithTimeIntervalSince1970을 사용하여 NSDates를 생성 할 때 궁금한 점이 있습니다. 나는 ISO8601 타임 스탬프를 NSDate에서 밀리 초로 변환 한 다음 NSDate로 간단히 변환합니다. NSDate를 생성 할 때 iphone 장치와 시뮬레이터 간의 불일치가 발생합니다.

NSDateFormatter *iso8601Formatter = [[NSDateFormatter alloc] init]; 
iso8601Formatter.dateFormat = TSMISO8601FormatString; // "yyyy-MM-dd'T'HH:mm:ssZZZZZ" 

NSDate startDate = [iso8601Formatter dateFromString: @"2014-03-19T09:46:00-06:00"]; 
long startTimeMilliseconds = [startDate timeIntervalSince1970] * 1000; 
startDate = [NSDate dateWithTimeIntervalSince1970:(startTimeMilliseconds/1000)]; 


내가 시뮬레이터에서이 작업을 실행

, 나는 다시 동일한 날짜를 얻을하지만 난 내 아이폰에서 실행하면, 내가 다시이 얻을. 난 정말 그냥 확인하기 위해 나는 내 시간대, 날짜 및 시간 형식이 모두 동일한 지 확인하기 위해 검사 한

1970-01-25 20:31:23 +0000 // iPhone device results 

격렬하게 다른 일을 다시 받고 있어요 이유에 대해 혼동하고있어이 그 문제가되지 않습니다. 둘 다 iOS 7.1을 실행 중입니다. NSDateFormatter의 로케일과 시간대를 아무런 성공없이 설정하려고 시도했습니다.

어떤 도움이

답변

2

을 감상 할 수있다이 :

long startTimeMilliseconds = [startDate timeIntervalSince1970] * 1000; 

은 다음과 같아야합니다 여기

double startTimeMilliseconds = [startDate timeIntervalSince1970] * 1000; 

이유

최대 긴 LONG_MAX 찾을 수 있습니다 그리고 그것은 것입니다 기록 :

2147483647

현재 시간 간격은 다음과 같습니다

1395243960000.000000

긴 충분히 큰 갈 수 없습니다.

+0

왜 이것이 차이를 만들었는지 혼란 스럽습니다. 그것에 대한 통찰력을 사랑할 것입니다. – Kat

+0

@Kat - 업데이트 – Logan

+0

@Kat - 문제가 해결 되었습니까? – Logan