2015-02-24 5 views
0

Я не могу понять, что это правильно. здесь первоначальное значение я получаю ... sDateOG NSString * @ «2015-02-24T11: 06: 10.847-05: 00» 0x7cd09580nsdateformatter --- преобразовать строку на сегодняшний день

Я пытаюсь превратить это хорошие и чистые даты/время ,

Еще новичок в этом, но я думал, что я должен изменить это на NSDATE, тогда у меня есть варианты для окончательного формата?

Я, похоже, не могу сделать это nsdate. это то, что я пытаюсь ...

NSString *sDateOG = [variableArray objectAtIndex:1]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'S''Z'"]; 

Кто-нибудь видел, что я делаю не так?

+2

не совсем все. Во-первых, вам не нужно указывать '-' или': ', просто' T'. Во-вторых, ваши одиночные кавычки несовместимы. В-третьих, это должно быть 'SSS', потому что в секундах есть 3 цифры. В-четвертых, для этой формы спецификации часового пояса вам понадобится 'ZZZZZ'. Все это объяснено в [спецификации] (http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns), которую вы должны пометить. –

+0

[dateFormatter setDateFormat: @ "'yyyyMMddTHHmmSSSZZZZZ'"]; NSDate * ddate = [dateFormatter dateFromString: sDateOG]; все еще не работает ... было то, что вы имели в виду? – solarissf

+0

Вам нужно процитировать T. И вам нужны символы - и: просто не нужно их цитировать. –

ответ

1

Вы должны принимать дробные секунды во внимание (и не процитировать ничего ожидать специальных символов.) Эта строка формата должна работать:

"yyyy'-'MM'-'dd'T'HH':'mm':'S.SSSZZZZZ" 
+0

Неправильный код часового пояса. –

+0

Это не будет генерировать правильную вещь, но, похоже, это просто отлично. –

+0

Пошел вперед и исправил ее, чтобы сгенерировать и разобрать часовой пояс правильно, а не просто разобрав его. –

0

Почему вы ставите все ключевые слова (yyyy, MM и т. Д.) Между кавычками? Вы также должны указать столько ключевых слов, сколько цифр/символов (следовательно, ZZZZZ).

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:SSSZZZZZ"]; 

EDIT: Удалены отставая бесполезен цитата

+0

Вам нужно процитировать Т. И почему последняя одинарная цитата? –

+0

@hotlicks: Набрал слишком быстро :( – Perceval

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