如何解析包含时区的字符串中的日期
问题描述:
我需要将以下字符串解析到NSDate中。如何解析包含时区的字符串中的日期
例子:2008-09-28T02:48:16+05:30
我尝试以下,但它不工作
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSLog(@"Date=%@",[dateFormatter dateFromString:@"2008-09-28T02:48:16+05:30"]);
,如果我保持@"2008-09-28T02:48:16+05:30"
到@"2008-09-28T02:48:16+0530"
它才起作用。
答
据我所知不能做到。例如,如果您将ZZZZ设为“GMT + 09:00”。
最简单的就是从输入字符串中删除冒号。
NSMutableString *input = [[NSMutableString alloc] initWithString:@"2008-09-28T02:48:16+05:30"];
[input replaceCharactersInRange:NSMakeRange(input.length-3, 1) withString:@""];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSLog(@"Date=%@",[dateFormatter dateFromString:input]);
[input release];
感谢您的解决方案,但这正是我现在正在做的。我唯一担心的是要知道是否可能或不从时区删除冒号部分。它可能是一些日期格式,它能够正确解析我给定的日期字符串.FYI,目前我使用10.5 SDK。在10.6 SDK或某些第三方日期解析代码中可能有一些解决方案。 – AmitSri 2010-09-22 07:43:25