generatesCalendarDates
プロパティは、日付を解析するときにNSDate
の代わりにNSCalendarDate
のインスタンスを作成するように指示します。
NSCalendarDate
は廃止され、廃止予定のAPIはほとんどがSwiftで利用できないため、Swiftでは利用できません。
だからNSCalendarDate
は何ですか? NSDate
のサブクラスで、timeZone
プロパティが追加され、グレゴリオ暦を使用して計算を実行するメソッドがありました。
なぜ廃止されましたか?アップルはMac OS X 10.4(Tiger)にNSCalendar
クラスを導入しているからです。 NSCalendar
のインスタンスを使用して、グレゴリオ暦を含むいくつかの異なるカレンダーを使用して計算を実行できます。 NSCalendar
には固有のtimeZone
プロパティがあります。 NSDate
オブジェクトは常にタイムゾーンに依存しません。
DateFormatter
は、calendar
プロパティを使用して日付を解析(およびフォーマット)します。既定では、そのcalendar
プロパティはCalendar.current
に設定されています。これはシステムカレンダーです。ユーザーは、設定>一般>言語&地域>カレンダーでシステムカレンダーを選択できます。
dateFormatter.calendar = Calendar(identifier: .gregorian)
の場合は、プロパティをグレゴリオ暦に明示的に設定できます。しかし、私はそれをお勧めしません。ユーザーが別のカレンダーを選択した場合は、グレゴリオ暦の使用を強制してもよろしいですか?
NSCalendarDateはサポートされなくなりました。ただそれを使用しないでください。なぜあなたはそれを必要としますか? –
ああ、私は参照してください。私はそれがオプションとして現れないと思ったでしょう。 –