我正在为我的iPhone应用程序使用Gdata库并获取Google事件,但Google将返回日期为 2014-01-02T13:00:00-06:00 。这是一个字符串。
如何在单独的字符串中显示“ 2014-01-02 ”和“ 13:00 ”?
由于
答案 0 :(得分:1)
如果您真正想要的只是字符串表示:
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(美国东部时间),所以显示的日期比google时间晚了一个小时,即时间区-06:00。