web-dev-qa-db-ja.com

Swiftで現在の月を文字列として取得するにはどうすればよいですか:

今月として5月を取得する必要がありますが、できませんでした。どうすればこれを達成できますか?.

   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

私はこれをしましたが、動作しません。

26
iron
let now = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "LLLL"
let nameOfMonth = dateFormatter.string(from: now)
62
André Slotta

Swift 3.を使用している場合、拡張機能とDateクラスが最適な方法です。

以下のコードを試してください

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

以下のように作業してください:

 let date = Date()
 let monthString = date.month
26
Balaji Galave

Dateの拡張で使用されるこれについては、DateFormatter()を使用してください。

これをグローバルスコープのプロジェクトの任意の場所に追加します。

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"
4
Luke Stanyer