今月として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
私はこれをしましたが、動作しません。
let now = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "LLLL"
let nameOfMonth = dateFormatter.string(from: now)
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
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"