2014-03-30 68 views
0

我已通過互聯網搜索,發現可以使用以下代碼設置[NSTimeInterval]。從NSDate設置NSTimeInterval

myCalendarDay.date = [date timeIntervalSince1970]; 

我沒有得到的是爲什麼調試器顯示值如下。 [日期]是[NSDate]類型,而[myCalendarDay.date]是[NSTimeInterval]類型。 我正在檢查他們的價值,並看到今年是31年。

這是正確的數據嗎?

enter image description here

回答

1

timeIntervalSince1970返回NSTimeInterval並表示自1970年1月1日,北京時間第一時刻已經過去的秒數。

當您存儲NSDate時,它實際上存儲自2001年1月1日格林威治標準時間以來的秒數。

您正在要求日期對象爲您提供一個引用日期的表示,然後您將該值分配給另一個日期對象(很可能是生成子類代碼時被告知使用本機值的核心數據對象)。它需要時間間隔,並假設它使用適當的參考日期。

這兩個日期之間有31年的時間,並非巧合,日期對象中的時間與核心數據實例中的日期之間存在31年。

如果你真的想用1970年爲基礎,你應該創建一個日期dateWithTimeIntervalSince1970: