2017-05-06 4 views
6

私は今月として得ることができますが、私はできませんでした。どのように私はこれを達成することができます。私は現在の月を迅速にStringとして取得することができます:

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 

私はこれを行っても機能しません。

+0

以下のようにそれで仕事を取得しますが、文字列の序数、月の(どの言語で)名前や他の何かをしたいですか?そしてSwift 3に更新することを検討してください。それは未来です。 – vadian

+0

@vadian 3は既に過去です。私たちは3.1 –

+0

@LeoDabusですもちろん、私は大急ぎアップグレードのように '≥'に関してSwift 3を意味します。 – vadian

答えて

16
let now = NSDate() 
let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "LLLL" 
let nameOfMonth = dateFormatter.stringFromDate(now) 
+0

ありがとう...... – iron

+2

スタンドアロン月の正しい形式は、LLLLですhttp://userguide.icu-project.org/formatparse/datetime –

0

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" 
+0

NSdateの日付は宣言されていません。.... swift 2 – iron

5

あなたはスウィフト3.0を使用している場合は、拡張機能やクラスが行くのに最適な方法です。コード

extension Date { 

     func getMonthName() -> String { 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "MMMM" 
     let strMonth = dateFormatter.string(from: self) 
     return strMonth 
    } 


} 

以下

試し

let date = Date() 

let monthString = date.getMonthName() 
+0

私はswiftを使用しています。 – iron

+0

あなたが仲間になればSwift 3.0を取得してください。 bczその最新の**スウィフトでたくさん起こっている** –

関連する問題