KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

プログラム

Swift 3 日付の取得

KENスクールの動画配信サービス「KEN×ONLINE」

Swift 3 日付の取得

Swift 3 での日付を取得する方法を紹介する。

カレンダー、タイムゾーンを無視した特定の時点の取得

Dateクラスを使用して当日の日付時刻を取得することが出来る。

Date init()
現在の日付と時刻に初期化された日付を返す
init(timeIntervalSinceNow: 時間間隔(秒))
現在の日付と時刻から所定の秒数で初期化された日付を返す

216行目~219行目にあるtimeIntervalSinceNowには秒を与えている。

Date(timeIntervalSinceNow: 60*60*24)→60秒×60分×24=1日
Date(timeIntervalSinceNow: 86400)と与えても同様の結果が得れる

一日分の時間間隔(秒)を渡しているので明日の日付を取得できる。

日付の表現を変換する

DateFormatterクラスを使用して日付表現を変えることができる。
dateStyle、timeStyleプロパティに用意されている固定フォーマットを指定すればLocaleに応じて適切な表記に変更したものを生成できる。

固定フォーマット 長め .full
標準 .midium
短め .short
なし .none

222~224行目でDateFormatterクラスを使用している。dateStyleプロパティにfull、timeStyleプロパティにnoneを与えている。表記形態は228、231行目でlocaleで設定したロケールに合わせて出力される。

Locale(identifier: “en_US”) 英語_アメリカ表記
Locale(identifier: “ja_JP”) 日本語_日本表記

オブジェクトの変換 func date(from: String)
受信者の現在の設定を使用して解釈された、指定された文字列の日付表現 を返す。

229行目DateFormatterクラスの.string関数を使えば引数from:に与えた日付から設定スタイルとLocaleに合わせた日付を文字列で取得できる。

カスタムフォーマットの設定

234行目のように用意された書式以外にもユーザー定義書式を設定することが可能。この記述ルールはUNICODE LOCALE DATA MARKUP LANGUAGEのDate Format Patternsに準拠する。

dateFormat.dateFormat = “yyyy年MM月dd日 hh時mm分ss秒”

またDateFormatterオブジェクトの.date()を使えば238行目のように文字列からの日付作成が可能。

dateFormat.date(from: stringDate)!

日付の比較

242行目Date型はifステートメントを使って用意に比較することが出来る。

if today > yesterday{ }

合わせて読みたい: KENスクールの学習システム

この記事に関連する講座

SwiftとiPhoneアプリ開発スキルが身につく!

詳しくはこちら