カテゴリー: iOS

SwiftでのDateクラスの煩わしさから解放されるSwiftDateを使ってみた

はじめに

こんにちは、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の比較

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は今後使っていこうと思います。

nukky

シェア
執筆者:
nukky
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

2週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

4週間 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前