Как я могу получить текущий месяц как String в swift:

Мне нужно получить в качестве текущего месяца, но я не мог этого сделать. Как я могу достичь этого.

   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

Я сделал это, но не работал.

Ответ 1

let now = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "LLLL"
let nameOfMonth = dateFormatter.string(from: now)

Ответ 2

Если вы используете Swift 3.0, тогда расширения и класс Date - отличный способ.

попробуйте ниже код

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

Получите работу с этим как ниже:

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

Ответ 3

Вы используете 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"