iOS12.3で「令和」が対応されるみたい。
(現時点で、iOS12.3はbeta 5)
これ関連で、バグを仕込んでしまっていたようで、今日は修正をしていた。
たとえば、
平成の日付: 2019-04-09 17:04:38 +0000 から、その日の0:00を求めようとしたとき。
let date1:Date = Date().addingTimeInterval(-3600 * 24 * 30) //平成の適当な日時
print("date1:", date1)
let cal = Calendar.current
let comp = cal.dateComponents([.year, .month, .day], from: date1)
let date2 = cal.date(from: comp)
print("date2:", date2 ?? "nil")
の結果は、
date1: 2019-04-09 17:04:38 +0000
date2: 2049-04-09 15:00:00 +0000
...と、30年先の日時になってしまう。
もちろん、iPhoneのカレンダーが西暦の場合は大丈夫。和暦設定にしている時のみ。
DateComponentを使った日時の計算には、Calendar(identifier: .gregorian) を使いましょう...
P.S.
0:00 の日時の算出には、CalendarのstartOfDay が使えます。
iOSの令和元年が始まる
• • •