Это очень распространенный вопрос, но мой может быть уникальным, так как у меня есть длинные десятичные разряды за секунды.Преобразование: NSString в NSDate
NSString *timestamp = @"2015-11-06 15:27:34.0000000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss zzz"];
NSDate *capturedStartDate = [dateFormatter dateFromString: timestamp];
My capturedStartDate
- null.
Для формата даты, я попытался заменить zzz
на Z
, a
и полностью удалить его. Я также пробовал с и без 'T'
. Кто-нибудь знает правильный формат для извлечения этой даты из строки?
'[dateFormatter setDateFormat: @" yyyy-MM-dd HH: mm: ss.SSS "];' Я не думаю, что есть смысл захватить больше десятичных точек. В следующий раз подумайте о том, чтобы прочитать документы: http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns – matt
@matt Я не фиксирую эту дату из приложения iOS, m получая его из базы данных. Это только формат, с которым мне приходится иметь дело, поскольку он хранится. Я согласен, миллисекунды могут быть бессмысленными. –
Моя точка зрения заключалась в том, что за пределами трех знаков после запятой NSDate не будет дифференцироваться. Он не имеет такой степени точности. Поэтому '' .SSS '' - это все, что вам нужно. – matt