我似乎在尝试将Google日历日期字符串(从公共JSON解析)转换为NSDate格式时遇到了很大困难。
Google的Calendar API的结果格式为:
"2012-06-20T11:00:00.000+01:00"
我正在尝试将其格式化为NSDate,如下所示:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
NSDate *gmtDate = [formatter dateFromString:[whenDict objectForKey:@"startTime"]];
但是,我一直得到一个空结果,所以我想知道是否有人知道正确的[NSDate dateformat]对于我正在尝试转换的结果 ......
我尝试过各种各样的dateFormat版本,但是经过几个小时的多处字母变换后,我还没有找到合适的版本!
即。我认为问题在于:
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
干杯,
答案 0 :(得分:6)
似乎+01:00不是标准时区,因此您必须将其更改为+0100,从中删除冒号(请参阅iPhone NSDateFormatter Timezone Conversion)
您可以使用以下代码
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ";
NSString *dataString = @"2012-06-20T11:00:00.000+01:00";
NSMutableString *mutableDate = [dataString mutableCopy];
[mutableDate deleteCharactersInRange:NSMakeRange(mutableDate.length - 3, 1)];
NSDate *gmtDate = [formatter dateFromString:mutableDate];