NSDate Формат меняется в зависимости от языка (региона)

В моем приложении (используя Swift 2) у меня есть функция, которая использует NSDateОднако у меня есть проблема: в зависимости от языка, установленного на устройстве, полученная дата не совпадает (например, месяцы зависят от языков: январь на английском языке равен Janvier на французском)

Когда у меня есть это:

NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: NSDateFormatterStyle.ShortStyle, timeStyle: NSDateFormatterStyle.NoStyle)

Когда я локализуюсь в США, я получаю этот формат 3/29/16но когда я локализуюсь во Франции, например, я получаю другой формат: 29/03/16

Как я могу попросить один и тот же формат даты (здесь американский формат), независимо от языка?

2 ответа

Решение

Для этого вам нужно создать свой собственный форматер даты, например

let dateFormater = NSDateFormatter()
dateFormater.dateFormat = "MM/dd/yy"
let dt = dateFormater.stringFromDate(NSDate())

Вы можете прочитать больше о формате даты в шаблонах формата даты

И форматирование даты Руководство по программированию

Использовать этот,

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .ShortStyle
dateFormatter.timeStyle = .NoStyle

dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

Ключ к одинаковому формату всегда использует одну и ту же локаль. Таким образом, он использует английскую локаль для форматирования строки и поэтому всегда остается в формате

M/d/yy
Другие вопросы по тегам