2016-01-10 3 views
-1

я в настоящее время есть класс с этим полем:Swift: быстрый/простой способ форматирования NSDate()

let date:String = NSDate().description 

и результирующее значение этот формат:

"2016-01-10 01:14:20 +0000" 

Но я хочу значение чтобы просто выглядеть так:

"January 1, 2016" 

Каков самый быстрый способ сделать это?

ответ

3

Сделать использование NSDateFormatterStyle.LongStyle в качестве значения для NSDateFormatter.dateStyle собственности:

let myDate = NSDate() 

let formatter = NSDateFormatter() 
formatter.dateStyle = .LongStyle 

let dateAsString = formatter.stringFromDate(myDate) 

print(dateAsString) 
// January 10, 2016 
+1

Вы также можете кэшировать экземпляр форматера, если это возможно, так как это дорого создать. http://stackoverflow.com/questions/8832768/why-is-allocating-or-initializing-nsdateformatter-considered-expensive –

+0

@ChengYuHsu Спасибо за эту обратную связь, это хороший момент для размышлений. – dfri

0
extension NSDate { 
    struct Date { 
     static let formatterDateLong: NSDateFormatter = { 
      let formatter = NSDateFormatter() 
      formatter.dateStyle = .LongStyle 
      return formatter 
     }() 
    } 
    var longStyleDate: String { return Date.formatterDateLong.stringFromDate(self) ?? "" } 
} 

NSDate().longStyleDate // "January 9, 2016" 
Смежные вопросы