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