2014-09-04 4 views
2

Я пытаюсь форматировать время следующим образом:быстры NSDateFormatter не работает

let formatter = NSDateFormatter() 
formatter.dateFormat = "hh_mm_ss" 
let d = formatter.stringFromDate(NSDate()) 
println("formatted text is: \(d)") 

Предположим, что текущее время 3 сентября, 2014 22:15:30

  1. Когда я запускаю этот скрипт на игровая площадка, он печатает правильно отформатированное время: 22_15_30.
  2. При выполнении этого на AppDelegate, не печатает время отформатированный: 22:15:30

Я использую Xcode 6 бета 5 ... Могу ли я что-то отсутствует? Почему stringFromDate не возвращает правильную дату форматирования?

EDIT: Я использую Xcode 6 бета 6.

Спасибо!

+0

Прекрасно работает для меня: 'отформатированный текст: 12_11_33' - возможно обновление до бета-версии 7? –

+0

Работает как и ожидалось для меня. –

+1

24-часовой формат - «HH», а не «hh». –

ответ

7

24-часовой формат «HH», а не «hh».

Причина, по которой он работает в Playground может быть , что пользовательские настройки могут переопределить выбор по 12/24 формата, сравнить What is the best way to deal with the NSDateFormatter locale "feechur"?. Чтобы быть на безопасной стороне, установите «en_US_POSIX» локаль для форматирования даты:

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

// Swift 3: 
formatter.locale = Locale(identifier: "en_US_POSIX") 
Смежные вопросы