2016-09-01 3 views
1

Я разрабатываю приложение iOS и получаю дату как целое значение из веб-службы. Я конвертирую строку integer to date, используя следующий метод.Почему разные даты в одном приложении для разных устройств?

func formatDate(timeInMiliSeconds: Int) -> String { 

    let millse = timeInMiliSeconds 

    let date = NSDate(timeIntervalSince1970:Double(millse)/1000.0) 

    let formatter = NSDateFormatter() 
    formatter.dateFormat = "dd MMM yyyy E" 
    formatter.locale = NSLocale.currentLocale() 

    let dateString = formatter.stringFromDate(date) 
    return dateString 
} 

Когда я запускаю приложение на iPhone 6S, которое запускает iOS 9.3.4. Он показывает дату как "01 Sep 2016 Thu". IPhone 6S показывает намеченную дату.

как всегда, когда я создаю это приложение для iPad 2, работающего под iOS 9.3.4. он показывает дату как "27 Dec 1969 Sat".

У кого-нибудь была эта проблема? Помощь была бы оценена.

+0

Если язык пользователя отличается от двух устройств, то 'local' объект отличается, следовательно, путь генерируется строка вывода. –

+0

Какова ценность timeInMiliSeconds? Вы дважды проверили, что на обоих устройствах одинаково? –

+0

@MartinR да Я проверил timeInMiliSeconds. Значение в обоих устройствах одинаково, но строка даты отличается в устройствах. – Ankahathara

ответ

0

Вы должны заменить

formatter.locale = NSLocale.currentLocale() 

в

formatter.timeZone = NSTimeZone.systemTimeZone() 
+0

Я обновил, как вы упомянули, но дает тот же результат, что и раньше. – Ankahathara

+0

Не могли бы вы проверить настройки iPad2, General-> Date & Time. Установите автоматически - ON – Giang

+0

Это на iPad, как вы упомянули. – Ankahathara

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