2016-03-10 1 views
-1

Я знаю, что есть несколько вопросов об этом. Но я пробовал всю рекомендацию, и все же время не соответствует времени, когда это действительно устройство.неправильное время с использованием NSDateFormatter

let dater = NSDate() 
    let dayTimePeriodFormatter = NSDateFormatter() 
    dayTimePeriodFormatter.locale = NSLocale.currentLocale() 
    dayTimePeriodFormatter.timeZone = NSTimeZone(name: "UTC") 
    dayTimePeriodFormatter.dateFormat = "H:s" 
    var dateString = dayTimePeriodFormatter.stringFromDate(dater) 

устройство (реальное) время: 22:11. dateString output: 00:36

Любые предложения? Благодаря!

+1

Вы настраиваете часовой пояс на UTC, который, как я предполагаю, не является часовым поясом, в котором вы находитесь. Вероятно, вы хотите установить его в 'NSTimeZone.systemTimeZone()' –

+0

Hey @NickWhite. Благодарю. Но когда я меняю его на SystemTimeZone, результат равен 00:58, а необходимое время - 00:43 –

ответ

2

Как Ник указывает, что вы используете UTC в качестве часового пояса, и вы можете добраться до местного часового пояса с NSTimeZone.systemTimeZone()

Это также, вероятно, что вы на самом деле не намерены использовать только часы (H) и секунд (ы) Вы, вероятно, также хотите минуты (м). Попробуйте использовать dateFormat из «H: m: s»

Еще лучше, используйте «H: mm: ss», который заставит минуты и секунды быть двумя цифрами, в отличие от одного, так что вы не завершить с «10: 4: 3»

+0

Эй! Благодарю. Но когда я меняю его на SystemTimeZone, результат равен 00:58, а необходимое время - 00:43 –

+0

Я делаю реплику экрана блокировки, поэтому мне просто нужно h/m –

+0

Вы пытались изменить датуФормат, как рекомендовано ? –

0

Вы пробовали dayTimePeriodFormatter.dateFormat = "HH:mm"?

Apple использует фиксированный Интернет. Обратитесь к here, чтобы посмотреть несколько примеров. Это может быть полезно

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