2010-10-06 15 views
5

Mam problem z przekonwertowaniem ciągu daty/czasu na NSDate.NSDateFormatter Format daty dla daty/czasu z dwukropkiem w strefie czasowej

Data ciąg muszę konwertować jest: 2002-12-24T00: 00: 00-07: 00

Moja format daty ciąg jest obecnie yyyy-MM-dd'T'GG: mm: ssZZZ

Problem polega na dwukropku w strefie czasowej.

ZZZ zwraca ciąg znaków jak: -0700 (bez dwukropka) Jak mogę przekonwertować ciąg znaków z dwukropkiem w strefie czasowej?

Dzięki

Odpowiedz

3

Proponuję jakiejś manipulacji ciąg tak, że jest w formie, która dateWithString mogą łatwiej przyjąć - jak o użyciu stringByReplacingOccurrencesOfString jeden lub więcej razy, aby pozbyć okrężnicy?

dateWithString chce:

YYYY-MM-DD HH:MM:SS ±HHMM 

masz:

yyyy-MM-dd'T'HH:mm:ssZZZ 

Prawdopodobnie będziesz musiał użyć jakąś kombinację componentsSeparatedByString (aby pozbyć się części 'T', chyba że masz małe zakres wartości możliwych dla T, i może napisać sobie małą funkcję do konwersji ssZZZ na + HHMM

+1

"T" poradzi sobie z T, więc wszystko, co musiałem się pozbyć, to dwukropek między czasem części strefy. Obawiałem się, że to "łatwa" droga dookoła problemu, ale nie w odpowiedni sposób. Jednak od wszystkich, z którymi rozmawiałem na ten temat, wydaje się, że jest to jedyny sposób na zrobienie tego. Ponieważ mój ciąg jest zawsze w tym samym formacie, mogę zrobić stringByReplacingOccurrencesOfString: withString: options: range: i ustawić zakres na 1 i 3 z końca ciągu – kdbdallas

+0

Mam ciąg dokładnie taki sam jak twój (2002-12- 24T00: 00: 00-07: 00), ale mój identyczny formatujący format "yyyy-MM-dd'T'HH: mm: ssZZZ" nie ma znaczenia, czy mam ":" czy nie w ciągu wejściowym. Czy coś się zmieniło? –

Powiązane problemy