2012-09-11 66 views
1

我一直在爲iOS開發一個日曆應用程序,它正在給我帶來許多問題。創建日曆應用程序:時間存儲和表示

我使用本地通知進行提醒。什麼是存儲事件日期,鬧鐘日期等的最佳方式?我的意思是,問題是由時區差異等引起的。我將事件存儲在覈心數據中。我一直在使用NSDate進行日期存儲,但我不確定這是在日曆視圖中查詢和表示事件的好方法。由於時區的原因,這些事件在錯誤的日子出現(比如從實際日子前一天)。

另外,有沒有教程或開源項目,我可以窺探?我還沒有遇到任何全面的,只有一點關於如何使用tapku日曆視圖的教程。

編輯:我沒有問一個關於日曆視圖的問題。我正在問日曆應用的基礎設施。

回答

2

你應該用NSDate存儲,並與NSDateComponents一起出現。

由於時區,事件顯示在錯誤的日子(如從真實日子前一天)。

發生這種情況是因爲NSDate是絕對時間點。您需要根據用戶區域設置進行適當的轉換才能顯示。 NSDateComponents(和NSCalendar一起)將處理這個問題。

The Date and Time Programming Guide會告訴你所有你需要知道的,但第一款定下基調:

有用於日期和時間的工作三大類。

  • NSDate允許您表示絕對時間點。
  • NSCalendar允許您表示特定日曆,例如公曆或希伯來日曆。它爲大多數 基於日期的計算提供接口,並允許您在NSDate 對象和NSDateComponents對象之間進行轉換。
  • NSDateComponents允許您表示特定日期的組件,例如小時,分鐘,日,年等。
0

我想你可以存儲日期的時間戳值

[NSDate的日期] timeIntervalSince1970]。

而我沒有明白爲什麼當你存儲爲NSDate值時你會得到錯誤的一天。有關於此的更多信息?