Hoe kan ik de huidige maand als String krijgen?

Ik moet mei als een huidige maand krijgen, maar ik kon het niet doen. Hoe kan ik dit bereiken?

  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

Ik heb dit gedaan, maar het werkt niet.


Antwoord 1, autoriteit 100%

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

Antwoord 2, autoriteit 43%

Als u Swift 3.0gebruikt, zijn extensies en de klasse Dateeen goede oplossing.

probeer onderstaande code

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

Ga ermee aan de slag zoals hieronder:

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

Antwoord 3, autoriteit 12%

Swift 3.0 en hoger

U gebruikt DateFormatter() zie hieronder hiervoor gebruikt in een extensie voor Date.

Voeg dit overal in uw project wereldwijd toe.

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

Dan kun je dit overal in je code gebruiken.

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

Other episodes