gpt4 book ai didi

ios - 为什么我不能使用 DateFormatter 属性 generateCalendarDates?

转载 作者:行者123 更新时间:2023-11-28 15:38:21 25 4
gpt4 key购买 nike

我正在编写一段处理日期的代码。 DateFormatter 类的实例有一个名为 generateCalendarDates 的属性。我相信这是一个 bool 值,用于根据当前日历创建日期。但是,当我尝试在 Xcode 中分配或检查此属性时,我会从我的代码完成中收到对该属性的描述。

enter image description here

它实际上告诉我不要使用这个属性。我想知道这是为什么。因为我实际上在考虑使用它。

最佳答案

generatesCalendarDates 属性告诉 NSDateFormatter 在解析日期时创建 NSCalendarDate 而不是 NSDate 的实例。

它在 Swift 中不可用,因为 NSCalendarDate 已弃用,而且大多数弃用的 API 在 Swift 中不可用。

NSCalendarDate 是什么?它是 NSDate 的子类,添加了 timeZone 属性并具有使用公历执行计算的方法。

为什么它被弃用了?因为 Apple 在 Mac OS X 10.4 (Tiger) 中引入了 NSCalendar 类。您可以使用 NSCalendar 的实例来使用多种不同的日历(包括公历)执行计算。 NSCalendar 有自己的 timeZone 属性,这是有意义的; NSDate 对象始终与时区无关。

DateFormatter 使用其 calendar 属性解析(和格式化)日期。默认情况下,calendar 属性设置为 Calendar.current,这是系统日历。用户可以在“设置”>“通用”>“语言和地区”>“日历”中选择系统日历。

如果需要,您可以将 calendar 属性显式设置为 Gregorian:dateFormatter.calendar = Calendar(identifier: .gregorian)。但我不推荐它。如果用户选择了不同的日历,您确定要强制使用公历吗?

关于ios - 为什么我不能使用 DateFormatter 属性 generateCalendarDates?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44056489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com