[解決済み】NSDateで年/月/日を取得する。
質問
の年/月/日を取得するにはどうすればよいですか?
NSDate
オブジェクトを、他の情報がない場合に使用できますか?私は、おそらくこれに似たようなものでこれを行うことができることを理解しています。
NSCalendar *cal = [[NSCalendar alloc] init];
NSDateComponents *components = [cal components:0 fromDate:date];
int year = [components year];
int month = [components month];
int day = [components day];
しかし、これではせっかく
NSDate
の年/月/日です。他に解決策はないのでしょうか?
どのように解決するのですか?
この回答はどうやら一番人気があるようなので、もう少し情報を盛り込むように編集してみることにします。
その名前とは裏腹に
NSDate
それ自体は、日付ではなく、単に機械時間における点をマークしています。で指定された時刻の間に相関関係はありません。
NSDate
と年、月、日などです。そのためには、カレンダーを参照する必要があります。どの時点でも、どの暦を参照しているかによって異なる日付情報を返します(たとえば、グレゴリオ暦とユダヤ暦の両方で日付は同じではありません)。
NSDate
は常にそれを使用する必要があります。
NSDate
幸いなことに、超党派の方がはるかに多いのです。
日付と時刻の取得は通過しなければならない
NSCalendar
しかし、もっと簡単な方法があります。
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]];
これは
NSDateComponents
オブジェクトを作成します。このオブジェクトには、現在のシステムカレンダーの日、月、および年が含まれます。(
注
これは必ずしも現在の
ユーザー指定の
カレンダーはデフォルトのシステムカレンダーです)。
もちろん、別のカレンダーや日付を使用している場合は、簡単に変更することができます。利用可能なカレンダーとカレンダーの単位の一覧は
NSCalendar
クラスリファレンス
. の詳細については、こちらをご覧ください。
NSDateComponents
は
NSDateComponents
クラスリファレンス
.
参考までに、個々のコンポーネントにアクセスする場合は
NSDateComponents
は割と簡単です。
NSInteger day = [components day];
NSInteger month = [components month];
NSInteger year = [components year];
心していればいいんです。
NSDateComponents
は、有効な情報を使ってフィールドを生成しない限り、要求したフィールドの有効な情報を含みません (つまり、リクエストした
NSCalendar
でその情報を提供します。
NSCalendarUnit
s).
NSDateComponents
それ自体は参照情報を持たず、アクセスするための番号を保持する単純な構造体です。例えば、時代も取得したいのであれば
NSDateComponents
のジェネレータメソッドに入力する必要があります。
NSCalendar
を使用して
NSCalendarUnitEra
のフラグを立てます。
関連
-
[解決済み】Objective-C。NULL、nil、@""の違いは何ですか?
-
[解決済み] Objective-CのNSLog関数でNSString型を出力する方法とは?
-
[解決済み] Objective-Cは構造体の使用を禁じていますか?
-
[解決済み] アーキテクチャ i386 のシンボルが見つかりませんでした。
-
[解決済み] クラスメソッドとインスタンスメソッドの違いは何ですか?
-
[解決済み] 「NSString *' 型のパラメータに 'const NSString *' を送ると修飾子が破棄される」警告
-
[解決済み】浮動小数点値の比較はどのくらい危険か?
-
[解決済み】NSDateをNSStringに変換する。
-
[解決済み】タイトル変更時に不要なUIButtonのアニメーションを停止させる方法は?
-
[解決済み】Swiftコンパイラーエラー。"フレームワークモジュール内の非モジュラーヘッダー"
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] C言語:拡張子「.mm」は何の略ですか?
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] NSTaggedPointerStringをNSStringに変換する。
-
[解決済み] Objective-Cのnil、NIL、nullの違いについて
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] synthesize vs @dynamic、その違いとは?
-
[解決済み] メソッド名と行番号を出力し、NSLogを条件付きで無効にする方法は?
-
[解決済み】NSMutableArrayから反復処理中に削除する最良の方法は?