2010-03-14 57 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