2016-01-29 2 views
0

NSLocale.autoupdatingCurrentLocale() делает форматирование даты i18n очень простой.Как я могу сделать NSLocale.autoupdatingCurrentLocale() вернуть только дату?

Например:

NSDate().descriptionWithLocale(NSLocale.autoupdatingCurrentLocale() 

Возвращает:

Monday, February 1, 2016 at 12:00:00 PM Pacific Standard Time 

Есть ли способ, что я могу изменить эту простую функцию, чтобы вернуть только дату? Если нет, как бы я построил эквивалентный объект NSLocale, который ведет себя одинаково, получив соответствующую международную строку даты?

я ожидал бы, для en_US, он может вернуться просто:

Monday, February 1, 2016 
+0

Просто используйте NSDateFormatter '.dateStyle = .FullStyle'. Локаль - это текущий язык по умолчанию. Если вы хотели бы специфичной локали просто установить dateFormatter.locale на то, что вам нужно –

+0

'пусть ДФ = NSDateFormatter() df.locale = NSLocale (localeIdentifier: "pt_BR") df.dateStyle = .FullStyle df.stringFromDate (NSDate()) ' –

+1

Ах, спасибо Лео. Бросьте это как ответ, и я соглашусь. 'Расширение NSDate() {FUNC asFullStyle() -> Строка { пусть dateFormatter = NSDateFormatter() dateFormatter.dateStyle = .FullStyle возврата dateFormatter.stringFromDate (Self) }}' – brandonscript

ответ

1

Вы можете просто использовать NSDateFormatter .dateStyle = .FullStyle. Локаль - это текущий язык по умолчанию. Если вы хотите, чтобы конкретный языковой стандарт просто установил ваш форматтера.колеса, что бы вам ни понадобилось

extension NSDate { 
    struct Date { 
     static let localizedFormatter: NSDateFormatter = { 
      let formatter = NSDateFormatter() 
      formatter.dateStyle = .FullStyle 
      return formatter 
     }() 
    } 
    var localizedDecription: String { 
     return Date.localizedFormatter.stringFromDate(self) 
    } 
} 

NSDate().localizedDecription // Friday, January 29, 2016" 
+0

Благодаря кучу Лео! – brandonscript

+0

@remus Добро пожаловать –

Смежные вопросы