iPhoneアプリ開発in沖縄

沖縄からiPhoneアプリをお届けします


テーマ:
日はカレンダーに日付を表示させるトコまでやってみましょう(^ε^)♪



まずはカレンダーを表示するための基準となる今日の値を取得します。


取得の仕方は次の通りです。


NSDate *now = [NSDate date];


この"NSDate"は、

グレゴリオ暦2001年1月1日0:00:00(世界標準時)からの

経過秒数で日時を扱うクラスで、

iPhoneの設定などによって変化しない値。

では、実際にどんな値が入っているか見てみましょう。


NSDate *now = [NSDate date];
NSLog(@"結果:%@", now);

↓出力内容↓
結果:2011-11-28 04:35:01 +0000




上記のよう値が得られました。

結果の"+0000"は、グリニッジ標準時との

差分を表しています。



つまり、時差無しってことですね。

日本は+0900のはずなのに・・・

※世界の主要都市の時差はこちらで確認できます。


この結果からも、システムの設定には

影響を受けない事が分かりました。




今日の値は取得出来ましたが、

時間がズレているのは困ります。



そこで、

まずはiPhoneのシステム設定にしたがった

日付と時刻を取得する準備です。

これはとてもシンプルです。


NSCalendar *baseCalendar = [NSCalendar currentCalendar];


NSCalendar *baseCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];




以上でシステム設定に従った

カレンダー表示のための準備ができました。



システム設定に従ったと書きましたが、

設定アプリで言語環境の書式を

日本にしていてもアメリカにしていても

又、カレンダーが和暦でも西暦でも

グレゴリオ暦のカレンダーが取得されます。

タイムゾーンはiPhoneの設定に従います。


※システムのカレンダー通りの表示をする場合は↓
NSCalendar *baseCalendar = [NSCalendar currentCalendar];
でした。σ(^_^;)


次は、

取得した今日の値を、さきほど作成した

”baseCalendar”を利用して

iPhoneの時刻と一致した値を取得します。



NSInteger flag = NSYearCalendarUnit
| NSMonthCalendarUnit
| NSDayCalendarUnit
| NSDayCalendarUnit
| NSHourCalendarUnit
| NSMinuteCalendarUnit;


NSDateComponents *baseComponents = [baseCalendar components:flag fromDate:baseDate];


NSString *str = [NSString stringWithFormat:@"%d年 %02d月 %02d日 %02d:%02d",
[baseComponents year], [baseComponents month],
[baseComponents day], [baseComponents hour],
[baseComponents minute]];


NSLog(@"結果:%@", str);


結果:2011年11月28日16:25



これだけの文章を書くのに少し時間を使いすぎてしまったので、


カレンダーに表示は次回という事で・・・


※内容を100%保証するものではありません。
間違いなどお気づきの時は、コメントいただけると
嬉しいです。






AD
いいね!した人  |  コメント(0)  |  リブログ(0)

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。