如何从包含时区的字符串中解析日期

时间:2010-09-21 11:28:04

标签: objective-c cocoa

我需要将以下字符串解析为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"时才有效。

1 个答案:

答案 0 :(得分:0)

据我所知,无法做到。如果以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];