DateComponentsFormatter
が予想外のユニット数を返すと問題が発生しました。誰も同じ問題に直面していますか?DateComponentsFormatterが不正なユニット数を返します
import Foundation
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .full;
formatter.maximumUnitCount = 1;
let date = Date(timeIntervalSinceNow: -14.7 * 24 * 60 * 60)
let dateString = formatter.string(from: date, to: Date()) // 2 weeks 1 day
「2週間」と表示されますが、「2週間1日」と表示されます。
なぜあなたは '14.7'を使用していますか? – shallowThought
@shallowThought私は 'maximumUnitCount'を設定しました - フォーマッタは複数のユニットを返すべきではありません。 –
FYI - 'Date(timeIntervalSinceNow:-14.7 * 24 * 60 * 60) 'を使うことは、日付の計算を行うためのひどい方法です。毎日24時間ではありません。すべての時間に3600秒があるわけではありません。 'Calendar date(byAdding ...)'メソッドの1つを使用します。 – rmaddy