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