はじめに
こんにちは、nukkyです。
Swiftでシステムアプリを作成する際に、
Dateクラスは必須だと思いますが
今回はDateクラスを使いやすく拡張してくれる
SwiftDateを紹介します。
準備
今回もおなじみCarthageを使用します。
Cartfileにこちらを記述してください。
1 | github "malcommac/SwiftDate" |
そうしたら、以下のコマンドでビルドしてください。
1 | carthage update --platform iOS |
使ってみよう
現在の取得
まずはSwiftDateのインポートから
1 | import SwiftDate |
SwiftDateはDateクラスを拡張してくれるライブラリなので
基本は変わらず現在の取得は以下で大丈夫です!
1 | var date = Date() |
パラメータの取得
年、月、日などがDateから直接とれるようになります
1 2 3 4 5 6 | print(date.year) print(date.month) print(date.day) print(date.hour) print(date.minute) print(date.second) |
月や曜日の名前も取得できます
1 2 | print(date.monthName)// =>July print(date.weekdayName)// =>Wednesday |
パラメータの操作
年、月、日などの操作がCalendar、DateComponentsを使用せず
直感的に操作できます、ありがたいです
1 2 3 4 | date = Date() + 1.year date = Date() - 1.month // もちろん複数パラメータも可能 date = Date() + 1.day + 4.hour |
文字列変換
文字列変換もFormatterを使用せず1行で書けます
これは本当にありがたいです
1 2 3 | print(date.string())// =>2017/06/05 0:40:15 // フォーマットの指定も可 print(date.string(custom: "yyyy-MM-dd")) |
Dateの比較
Dateを比較する際に<,>,==,<=,>=の演算子が使用できます
1 2 3 4 5 | let date1 = Date() let date2 = Date() + 1.day if date1 < date2 { print("date2の方が未来") } |
判定メソッド
「今日かどうか」、「日曜かどうか」などの判定をしてくれます
1 2 3 4 5 6 | print(date.isToday) print(date.isTomorrow) print(date.isYesterday) print(date.isEvening) print(date.isAfternoon) print(date.isInWeekend)// 日曜かどうか |
さいごに
Dateクラスを扱う際に文字列におこしたり
日付操作をするのはFormatter、Calendar、
DateComponentsなど使用し割と面倒くさいとので
コード量的にも見た目の直感さも
SwiftDateは今後使っていこうと思います。