我如何在swift中获得String当前月份:

时间:2017-05-06 13:03:42

标签: ios swift nsdate nscalendar

我需要得到可能作为当月,但我做不到。我怎样才能做到这一点。

   let date = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components([.Day , .Month , .Year], fromDate: date)

    let year =  components.year
    let month = components.month
    let day = components.day

我已经这样做了但是没有用。

2 个答案:

答案 0 :(得分:22)

如果您使用 Swift 3.0 ,则扩展程序和日期类是很好的方法。

尝试以下代码

extension Date {
    var month: String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MMMM"
        return dateFormatter.string(from: self)
    }    
}

如下所示:

 let date = Date()
 let monthString = date.month

答案 1 :(得分:4)

您可以使用DateFormatter()在Date的扩展名中使用以下内容。

在全局范围内的项目中的任何位置添加它。

extension Date {
    func monthAsString() -> String {
            let df = DateFormatter()
            df.setLocalizedDateFormatFromTemplate("MMM")
            return df.string(from: self)
    }

}

然后您可以在代码中的任何位置使用它。

let date = Date()
date.monthAsString() // Returns current month e.g. "May"