Ios 目标c中的合并日期和时间
我正在为我的iPhone应用程序使用Gdata库并获取Google事件,但Google将日期返回给我为2014-01-02T13:00:00-06:00。这是一根绳子 如何将“2014-01-02”和“13:00”分为不同的字符串Ios 目标c中的合并日期和时间,ios,objective-c,nsstring,nsdate,nsdateformatter,Ios,Objective C,Nsstring,Nsdate,Nsdateformatter,我正在为我的iPhone应用程序使用Gdata库并获取Google事件,但Google将日期返回给我为2014-01-02T13:00:00-06:00。这是一根绳子 如何将“2014-01-02”和“13:00”分为不同的字符串 如果您真正想要的只是字符串表示,请多谢: NSString *googleDataString = @"2014-01-02T13:00:00-06:00"; NSArray *dataTimePair = [googleDataString componentsS
如果您真正想要的只是字符串表示,请多谢:
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(EST),因此显示的日期比时区为-06:00的google时间晚一小时。NSString文档有一个“查找字符和子字符串”部分……当然,更明智的方法可能是使用NSDateFormatter创建NSDate,然后将其格式化为您想要的样式。但无论如何,我们希望您在寻求帮助之前尝试一些东西。@HotLicks-Dude我在谷歌上搜索过,但其他人没有相同的格式“T”是这里令人困惑的部分。@MartinR-我知道NSString有“查找字符和子字符串”的功能,我不想查找和删除字符串,我想由NSDateFormatter完成。谢谢老兄。。。NSDateFormatter服务更好。。。。