Google日历数据的NSDateFormatter dateFormat

时间:2012-06-19 12:25:17

标签: ios datetime nsdate nsdateformatter date-format

我似乎在尝试将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";

干杯,

1 个答案:

答案 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];