Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

[Objective-C] 日付を操作する

More than 5 years have passed since last update.

使うクラス

  • NSDate
  • NSCalendar
  • NSDateComponents

3日後の日付を得る

// 3日後
NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *comp = [[NSDateComponents alloc] init];
comp.day = 3;

NSDate *result = [calendar dateByAddingComponents:comp toDate:date options:0];
NSLog(@"3日後: %@", result);
3日後: 2014-08-28 23:53:46 +0000

TimeZone

ちなみに上記の出力を見てみると、+0000となっているのが分かります。
実は普通に計算すると「GMT(グリニッジ標準時間:日本と9時間差) の時刻」になってしまいます。
なのでローカルな時間に変換する必要があります。

それについては「NSDateの現在時刻を日本時間というかlocal時刻で」で書かれていました。

コードを引用させてもらうと、

NSDate* now = [NSDate dateWithTimeIntervalSinceNow:[[NSTimeZone systemTimeZone] secondsFromGMT]];

とすればいいようです。

edo_m18
現在はUnity ARエンジニア。 主にARのコンテンツ制作をしています。 最近は機械学習にも興味が出て勉強中です。 Unityに関するブログは別で書いています↓ https://edom18.hateblo.jp/
http://edom18.hateblo.jp/
unity-game-dev-guild
趣味・仕事問わずUnityでゲームを作っている開発者のみで構成されるオンラインコミュニティです。Unityでゲームを開発・運用するにあたって必要なあらゆる知見を共有することを目的とします。
https://unity-game-dev-guild.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away