Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 目标c中的合并日期和时间_Ios_Objective C_Nsstring_Nsdate_Nsdateformatter - Fatal编程技术网

Ios 目标c中的合并日期和时间

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

我正在为我的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 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服务更好。。。。