我如何解决ios8的日期问题

时间:2015-07-26 16:14:56

标签: ios swift ios8 nscalendar gregorian-calendar

我不知道如何编写正确的代码来修复我的日期问题

class Date {

class func from(#year:Int, month:Int, day:Int) -> NSDate{

    var components = NSDateComponents()
    components.year = year
    components.month = month
    components.day = day

  let gregorianCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
    let date = gregorianCalendar?.dateFromComponents(components)

    return date!
}

这是错误消息  iOS版本8.0中不推荐使用'NSGregorianCalendar':改为使用NSCalendarIdentifierGregorian

但是当我替换下一行时不起作用

2 个答案:

答案 0 :(得分:2)

只需使用:

let calendar = NSCalendar.currentCalendar()

它将返回格里高利历(取决于区域设置)。

另一种选择是定义常量并使用GregorianCalendar作为日历名称:

#ifdef __IPHONE_8_0
    #define GregorianCalendar NSCalendarIdentifierGregorian
#else
    #define GregorianCalendar NSGregorianCalendar
#endif

答案 1 :(得分:2)

如果你真的想强制格里高利历,请使用以下NSCalendar初始值设定项:

        let gregorianCalendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)