2016-11-17 6 views
1

У меня есть следующий код:DateFormatter производит неожиданный результат на устройстве

var components = DateComponents() 
components.year = 2017 
components.month = 1 

var calendar = Calendar.current 
let date = calendar.date(from: components)! 

let formatter = DateFormatter() 
formatter.setLocalizedDateFormatFromTemplate("MMMMYYYY") 
let string = formatter.string(from: date) 

Когда я бегу в симуляторе на моем компьютере он работает, как я ожидал бы и значение string является января 2017.

Однако, когда я использую тот же код на своем устройстве, значение string равно Январь 2016. Что может быть причиной этой разницы?

ответ

1

Разница может быть

  • Различные локали на устройстве и тренажера.

и/или

  • YYYY в год в Неделя Год основе календаря.
  • yyyy - год в стандартном календаре.

Вы всегда должны использовать yyyy.

+0

Да, использование 'yyyy' исправляет его. Не знаю, почему я использовал 'YYYY'. Наверное, только крышка замка счастлива. –

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