2010-03-14 62 views
2

我有一個iPhone應用程序。即正在接收具有IRFC 3339時間戳格式的數據(例如@「2010-01-29T11:30:00.000 + 01:00」),如在GData中。我想將數據轉換爲一個NSDate從NSString檢索NSDate

NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[inputFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"]; 
[currentEntry setStartTime:[inputFormatter dateFromString: ][currentEntry startTimeString]]]; 

但我錯過了如何將字符串的最後一部分轉換@「2010-01-29T11:30:00.000 + 01:00」:時間抵消。任何人都知道我必須添加到此字符串中以獲取時間偏移量嗎?

回答

1

我相信「Z」中的格式字符串指定的時區偏移

+0

你的意思是我只需要添加一個Z到@「yyyy-MM-dd'T'HH:mm:ss.SSS」就像@「yyyy-MM-dd'T'HH:mm:ss.SSSZ」 ? – 2010-03-14 04:51:21

+0

你是對的。 http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns 請注意GData,iirc,祖魯時間他們使用Z而不是-00:00,所以你可能不得不處理這個問題。 – 2010-03-14 04:52:28

+0

是的,就是這樣。 – 2010-03-14 04:56:54

0

如果你做了很多具有的GData,我使用google's objective-c client code還推薦,他們提供的類中創建一個從標準的Objective-C的對象,以幫助的GData。

+0

感謝您的提示! – 2010-03-14 05:42:01

0

您需要去掉冒號並將「ZZZ」添加到格式字符串中。這解析時區偏移,如「+100」或「-500」。

+0

它工作正常,只有一個「Z」 – 2010-03-14 06:19:18