日付が変わったときの処理

カレンダーなどのアプリで、画面に今日の日付などを表示している場合、真夜中に日付が変わった瞬間にUI表示を変えたりなどの処理をしたいことがありますよね。

そのためだけにNSTimerなどを使ってタイマー処理をするのも面倒くさいので、たいていはスルーしていると思うんですが。

実はそんな時に使える便利な機能があります。

UIApplicationDelegateで、applicationSignificantTimeChangeをオーバーライドしておけば、日付が変わった瞬間にこの関数が呼ばれて、UI変更の処理をすることができます。

- (void)applicationSignificantTimeChange:(UIApplication *)application{
    
    NSLog(@"日付の表示を変えてください。");

}

こんな時によばれるので、日時を扱うアプリでは、実装しておくのがお勧めです。

  • ユーザーが端末の時間を変更した時
  • タイムゾーンが変更された時
  • 日付が変わった時
  • 夏時間が始まった時、終わった時