我想編碼的程序的一部分,允許用戶設置一個或多個警報,提醒他們啓動應用程序,並在一天中的某些時間做某些事情。適當的方式來表示鬧鐘的時間
我基本上明白我需要使用本地通知,但我很難想出用最佳方式在適當的方式下在我的應用程序設置中表示一天的時間。
例如,我想這樣的事情來代表上午08時
[NSDate dateWithTimeIntervalSince1970:(8 * 60 * 60)]
但問題是,這意味着上午08點GMT,而不是在本地時區,所以當我通過這NSDateFormatter例如,我在我的時區結束了凌晨3點。
基本上我知道我需要做一些與NSCalendar
,NSDate
和NSTimeInterval
,也許NSDateComponents
,但我似乎無法拿出來這個最簡單的方法,讓我算算調度NSDates爲iOS本地通知。
所以我想這是什麼歸結爲,我怎麼能代表在系統時區的上午8:00以NSDateFormatter將正確格式化爲本地時間?
好像我應該能算出來,但也許是在晚上只是爲時已晚....
好的,我從中得到的是我不應該試圖濫用NSDate來表示一天中的時間,而只是存儲小時和分鐘的NSUIntegers,或者可能只是存儲自午夜以來的分鐘或秒鐘,然後只是用它來計算通知排定時的日期。然後,我只是不使用NSDateFormatter在UI中顯示鬧鐘時間,因爲它不適合用於此。 – Nimrod 2010-10-16 11:24:40
Nimrod:使用NSDateComponents來計算小時和分鐘,或者存儲自午夜以來的秒數(作爲NSTimeInterval,它沒有固定參考點 - 參考點+間隔=日期)。你可以使用NSDateFormatter來呈現一個特定的火災日期(「下一次報警:2010-10-17T08:00」),但是,對於單獨的小時和分鐘,你應該使用別的東西。 – 2010-10-16 15:31:47