2017-05-06 98 views
6

我需要將當前月份作爲月份,但我無法做到。我怎樣才能做到這一點。如何在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 

我已經這樣做,但沒有奏效。

+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()參見下面的日期擴展中使用的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" 
+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 2 – iron

+0

剛剛得到Swift 3.0,如果你可以兄弟。 bcz它的很多事情發生在最新的** swift **上 –

相關問題