2016-05-11 3 views
2

АНИ возвращает мне это значение в JSon файле:Дата против манипуляции Строка Swift2 Best Practice

2016-05-11T00:00:00,2016-05-11T21:22:59 

Теперь мне нужно, чтобы извлечь время дня после того, как «» в этом формате чч: мм

Итак, для этого примера я хотел бы получить этот результат «21:22». Поскольку я позже нуждаюсь в этом значении в виде строки, я предполагаю, что строковый подход в этом случае проще?

Что это лучший способ сделать это? Должен ли я использовать строковые манипуляции или использовать в качестве объекта NSDate?

Извините, что я совсем недавно стремился в основном делать javascript в прошлом.

Любая помощь очень ценится.

BR

николай

+0

Вы всегда должны дату, когда API предоставляет? Или он когда-либо должен учитывать местоположение пользователя, если так, я бы ответил. создавая объект NSDate, вы всегда можете создать новый форматтер, чтобы получить время из него позже в виде строки. –

+0

Хороший вопрос. Я только тестировал API в Германии, поэтому не уверен, изменит ли он время. Но я всегда хочу сообщать на основе немецкого времени (услуга доступна только в Германии), и если пользователи приложения отчета находятся в другом часовом поясе, приложение должно все равно сообщать на основе немецкого часового пояса. Это понятно? Извините, не носитель языка. – Nikolay

ответ

2
let period = "2016-05-11T00:00:00,2016-05-11T21:22:59" 

// split the string into date string 
let dateStrings = period.componentsSeparatedByString(",") 

// define date parser 
let parser = NSDateFormatter() 
parser.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" 

// parse dates 
let dates = dateStrings.map { parser.dateFromString($0)! } 

// generate a string from the second date using system settings 
let formatter = NSDateFormatter() 
formatter.dateStyle = .NoStyle 
formatter.timeStyle = .ShortStyle 
// or formatter.dateFormat = "HH:mm" 

let timeString = formatter.stringFromDate(dates[1]) 

print(timeString) 
+0

Спасибо, Султан! Лучше, чем мой подход. – Nikolay