【Swift入門】日時を操作する | Date・DateFormatter・DatePicker

こんにちは!フリーエンジニアのヤマシタです。

Swiftで日付操作を行うにはDateを使用します。

この記事では、

・Dateで現在の日時を取得する方法
・Dateで指定した日時を取得する方法

というDateの基本的な解説から、

・日時をフォーマットする方法
・DatePicker(デートピッカー)の使い方

などの応用的な使い方に関しても解説していきます。

今回はそんなDateやDateFormatter、DatePickerの使い方についてわかりやすく解説します!

※この記事ではSwift4.0を使用しています。

Dateで日付を取得する方法

現在の日時を取得する

Dateは現在の日付を取得することができる構造体です。

Dateは日付を取得する以外にも日付同士を比較したり、日付間の時間間隔の計算、新しい日付の作成などができます。

また、DateFormatterのインスタンスを使用して指定したフォーマットで日時を取得することができます。

Swift2まではNSDateNSDateFormattterを使用していましたが、Swift3以降ではDateやDateFormattterを使用するようになりました。

以下にDate構造体を使用して、現在の日付を取得するサンプルを紹介します。

実行結果:

このように日付を取得するだけなら、簡単に行うことができます。

指定した日時を取得する

Calendarのインスタンスを使用することで、特定の日時を取得することができます。

以下のサンプルではCalendarのdatestartOfDayを使用して、基準となる日時から指定した日時を取得する方法を紹介します。

上記サンプルでは、生成したCalendarインスタンスのdateを使用してvalueの値を1(明日)、-1(昨日)を指定して日付を取得しています。

日時をフォーマットする

日付を指定したフォーマットに整形するには、DateFormmaterを使用します。

以下にDateで取得した日付をDateFormmaterでフォーマットするサンプルを紹介します。

実行結果:

このサンプルでは、まずDateで現在の日付を取得しています。

次にDateFormmatterのインスタンスを生成し、DateFormatterのDateFormatを使用して日付のフォーマットを指定しています。

最後に指定したフォーマットをStringに変換するためにDateFormatterのstringを使用して、Dateで取得した日付を引数に指定しています。

また、指定した日時をフォーマットしたい場合は、以下のように日時を文字列で指定してフォーマットすることもできます。

DatePicker(デートピッカー)を使ってみよう

ここではXCodeのSwiftのプロジェクトからDatePickerを使用して、選択した日付を取得してみましょう。
今回はSwift4、Xcodeのバージョン9を使用しています。

DatePickerを使用するには、Xcodeのプロジェクトから「Main.storyboard」を選択し、DatePickerを画面に配置します↓

image1

続けて、Labelを画面に配置します↓

image2

続けて、Buttonを画面に配置し、ボタンの名称を「GetDate」にします↓

image3

部品を全て配置したらViewController.swiftのソースコードを表示して、各部品を「control」を押しながらソースコードにドラッグします。

まずはLabelをソースコードにドラッグし、Nameを「Label」にしてConnectボタンを押します。

続けてDateickerを同じようにソースコードにドラッグし、Nameを「Picker」にしてConnectボタンを押します。

最後にButtonをdidReceiveMemoryWarning(){…}以下にドラッグして、Buttonの吹き出しから、Connectionを「Aciton」に設定して、Nameを「GetDate」に設定します。

これで各部品ごとにイベントを受け取れるようになりました。

続けてButtonのGetDateを以下のように記述して、DatetPickerの値が変更されたときにデータを取得できるようにします。

GetDateには、以下のように記述します。

ここまで記述したViewController.swiftの全体は以下のようになります。

これをビルドして実際に動かして見ましょう

ピッカーを操作して「GetDate」ボタンをクリックすると、選択した日付がラベルに表示されました!
image5

まとめ

ここではSwiftので日付を操作する方法として、

・Dateで現在の日時を取得する方法
・Dateで指定した日時を取得する
・日時をフォーマットする
・DatePicker(デートピッカー)の使用方法

などについて解説しました。

Swiftで日付を扱うには、DateやDateFormatter、Calendarなどがよく使用されます。

そのため、使い方についてはよく理解しておきましょう。

もし日付を扱う方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説