如果你真正想要的是字符串表示:
NSString *googleDataString = @"2014-01-02T13:00:00-06:00";
NSArray *dataTimePair = [googleDataString componentsSeparatedByString:@"T"];
NSString *dateString = dataTimePair[0];
NSString *timeString = dataTimePair[1];
NSArray *timeParts = [timeString componentsSeparatedByString:@":"];
timeString = [NSString stringWithFormat:@"%@:%@", timeParts[0], timeParts[1]];
NSLog(@"date: %@, time: %@", dateString, timeString);
NSLog 输出:
日期:2014-01-02,时间:13:00
但是,我建议从 googleDataString 创建一个NSDate,然后使用NSDateFormatter 获取日期和时间字符串。尤其是当您要将日期/时间用于显示的任何内容时。
NSString *googleDataString = @"2014-01-02T13:00:00-06:00";
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:sszzz"];
NSDate *dateTimeString = [dateFormatter dateFromString:googleDataString];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:dateTimeString];
[dateFormatter setDateFormat:@"HH:mm"];
NSString *timeString = [dateFormatter stringFromDate:dateTimeString];
NSLog(@"date: %@, time: %@", dateString, timeString);
NSLog 输出:
日期:2014-01-02,时间:14:00
注意:NSDate 维护 GMT 的日期/时间,日期/时间显示在本地时区或NSDateFormatter 实例上设置的指定时区。我在 -05:00(美国东部标准时间),所以显示的日期比时区 -06:00 中的谷歌时间晚一小时。