2016-11-07 3 views
1

NSDate는 "임의의 특정 시간대 나 시간대와 관계없이 단일 시점"을 나타 내기 때문에 timeIntervalSince1970과 같은 메소드로 주어진 초 단위로 직접 계산할 수 있습니까?NSDate timeIntervalSince1970에 의해 생성 된 초로 작동하는 것이 좋습니까?

나는 추가 등의 작업을 의미 오히려 dateByAddingTimeInterval: 또는 - (nullable NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSCalendarOptions)opts 같은 NSCalendar 방법을 사용하는 것보다 두 NSTimeInterval (일명 double) 값으로 뺍니다.

이러한 직접 계산에는 어떤 문제점이 있습니까?

+1

NSDateComponents를 사용하는 것이 더 좋을 수 있습니다. 예를 들어 낮에 조명이 켜져 있기 때문에 오늘 오후 2 시가되면 내일 오후 2시에있을 수 있습니다. 24 시간, 23 시간 또는 25 시간. – Larme

+1

마음에있는 구체적인 예를 보지 않고는 항상 'dateByAddingComponents'를 사용하는 것이 가장 좋습니다. 그러나 초를 사용하여 직접 작업하는 것이 좋을 수도 있습니다. 그러나 당신이 정말로하고 싶은 것을 알지 못하면 유일하게'dateByAddingComponents'를 사용하는 것이 좋습니다. – rmaddy

답변

1

덧셈은 의미가 떨어질 수 있지만, 두 날짜 간의 시간 차이를 찾으려면 뺄셈이 적합합니다.

은 당신이주의 할, 그러나, 당신은 당신의 뺄셈

에서 초, 분, 시간, 일, 주 차이를 가야하지만, 당신이 원하는 것 달과 년의 차이를 찾을 수 있다는 것입니다 NSDate API를 사용합니다. 개월과 연도가 일정하지 않습니다.

초를 추가하는 것과 마찬가지로 초, 분, 시간, 일, 주를 추가하려고합니다. 그것들은 일정하고 쉽게 추가 할 수 있습니다. 하지만 몇 달이 지나면 여행 할 것입니다

+0

하루에 한 번 하루에 23 또는 25 시간이 있습니다. 매 순간마다 도약의 순간이 있습니다. 분, 시간, 일 및 주는 일정하지 않습니다. – Willeke

+0

NSDate를 '지금'으로하고 24 시간 후에 다음 두 자리를 빼면 윤년이 두 번째가 될 경우 24 * 60 * 60 * 1000보다 큰 숫자로 끝날 수도 있습니다 에서? 나는 그들이 어떻게 일정하지 않을지 확신하지 못한다. –

+0

나는 두 번째 도약에 관해 모른다. 그러나 나는 23와 25 시간에 관해 확신한다. – Willeke