はじめに
Dateは扱いにくい!!
こんなふうに使いたい!!!
Date(string: "2022/05/10 12:00:00")
実装
extension Date {
init(string: String, format: String = "yyyy/MM/dd HH:mm:ss") {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.current
dateFormatter.calendar = Calendar(identifier: .gregorian)
guard let date = dateFormatter.date(from: string) else {
fatalError("The format is incorrect")
}
self.init(timeIntervalSince1970: date.timeIntervalSince1970)
}
}
注意
dateFormatter.calendar
を指定しないとユーザーの設定によって値が変わってしまう
https://qiita.com/SNQ-2001/items/38912a1f41129585cdba#comment-d114039a82f8abb99df9
おわり
fatalError
で処理してるのは良くないかもしれないです。
おすすめの方法があればコメントで教えていただけると嬉しいです