2013-08-22 7 views
1

현재 CFAbsoluteTimeGetCurrent()을 사용하여 CFAbsoluteTime 구조체로 현재 시간을 가져옵니다.오늘 자정의 CFAbsoluteTime을 가져 오는 가장 좋은 방법은 무엇입니까?

CFAbsoluteTime 오늘의 자정을 얻는 가장 좋은 방법은 무엇입니까?

Ive considered getting midnight using a similar method to the one shown here으로 변환 한 다음 결과를 CFAbsoluteTime으로 변환합니다. 그러나 이것은 간단한 일을하기에는 엄청나게 복잡해 보입니다.

더 좋은 방법이 있습니까?

답변

3

등의 것들이 고려되어야하기 때문에 "오늘의 자정"을 계산하는 것은 간단하지 않습니다. 브라질은 자정에 DST 전환을 수행 내 선호하는 방법은 다음 구체적인 예를 들어

CFAbsoluteTime cfMidnight = [midnight timeIntervalSinceReferenceDate]; 
+1

로 변환 할 수 있습니다

NSCalendar *calendar = [NSCalendar currentCalendar]; NSDate *midnight; [calendar rangeOfUnit:NSDayCalendarUnit startDate:&midnight interval:NULL forDate:[NSDate date]]; 

입니다. 즉, 해당 국가의 (일부) 10 월 셋째 주 일요일 자정은 존재하지 않습니다 (시계가 앞으로 01:00에 이르기 때문에 대부분의 미국에서 02:00에서 03로 건너 뛰기 때문에). DST 시작 날짜가 00이므로 02:00이 존재하지 않습니다. https://en.wikipedia.org/wiki/Daylight_saving_time_in_Brazil (미국에서와 마찬가지로, 모든 상황이 당신이 속한 국가에 달려 있는지 여부) 더 답할 수있는 질문은 "어느 순간에" of-the-calendar start? ", 그리고 그것이 여러분의 코드가하는 것입니다. –