Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Objective c 如何将Nstring转换为NSDate?_Objective C_Nsdate_Nsdateformatter - Fatal编程技术网

Objective c 如何将Nstring转换为NSDate?

Objective c 如何将Nstring转换为NSDate?,objective-c,nsdate,nsdateformatter,Objective C,Nsdate,Nsdateformatter,我想将nsstring转换为nsdate 我有一个字符串有这个值 08:00:00 2000-01-01 06:00:00 +0000 我想转换它,所以我写了这段代码 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"HH:mm:ss"]; NSDate *startDate = [formatter dateFromString:_startTime]; NSL

我想将nsstring转换为nsdate 我有一个字符串有这个值

08:00:00
2000-01-01 06:00:00 +0000
我想转换它,所以我写了这段代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];  
NSDate *startDate = [formatter dateFromString:_startTime];
NSLog(@"%@",startDate);
 NSString *dateString = _startTime;
NSDateFormatter *formatter= [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[formatter setDateFormat:@"HH:mm:ss"];

NSDate *startDate = [[NSDate alloc] init];
// voila!
startDate = [formatter dateFromString:dateString];

NSLog(@"%@",startDate);
_startTime具有此值=08:00:00

但是在我显示它之后,它有这个值

08:00:00
2000-01-01 06:00:00 +0000
更新我写的代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];  
NSDate *startDate = [formatter dateFromString:_startTime];
NSLog(@"%@",startDate);
 NSString *dateString = _startTime;
NSDateFormatter *formatter= [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[formatter setDateFormat:@"HH:mm:ss"];

NSDate *startDate = [[NSDate alloc] init];
// voila!
startDate = [formatter dateFromString:dateString];

NSLog(@"%@",startDate);

我希望输出为08:00:00

没有日期就不能有NSDate! 如果要从NSDate访问时间,则需要使用NSDate组件或NSTIMEIVERT

要使用NSDate组件访问NSDate中的时间,请执行以下操作:

NSString *startTime = @"08:00:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *startDate = [formatter dateFromString:startTime];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:startDate];
NSLog(@"%d:%d:%d", [components hour], [components minute], [components second]);
我不明白更改字符串的目的是什么\u startTime,是否要比较日期

编辑:

NSString *startTime = @"08:00:00";
NSString *endTime = @"23:00:00";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *startDate = [formatter dateFromString:startTime];
NSDate *endDate = [formatter dateFromString:endTime];

NSTimeInterval difference = [endDate timeIntervalSinceDate:startDate];

NSInteger temp = difference;

NSDate* newDate = [[NSDate alloc] init];

for (int i = 0; (i < difference && [newDate compare:startDate] == NSOrderedDescending); ++i)
{

    newDate = [startDate dateByAddingTimeInterval:(temp - i*60*10)];

    NSLog(@"%@",newDate);

}

运行此命令并使用NSDATE组件记录所需内容

使用此代码我认为此代码对您有所帮助

NSString *dateStr = @"08:00:00";
NSDateFormatter *datFormatter = [[NSDateFormatter alloc] init];
[datFormatter setDateFormat:@"HH:mm:ss"];
NSDate* mydate = [datFormatter dateFromString:dateStr];
NSLog(@"date: %@", [datFormatter stringFromDate:mydate]);

我想这才是你真正想要的…

你从哪里开始?当我运行下面的代码时,它给出了预期的结果。NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init];[格式化程序setDateFormat:@HH:mm:ss];NSDate*startDate=[formatter dateFromString:@08:00:00];NSLog@%@,起始日期;请检查这个答案,我是从segue得到的,但是我记录了它,并且我使用fineNSDateFormatter*formatter=[[NSDateFormatter alloc]init];[格式化程序setDateFormat:@HH:mm:ss];NSDate*startDate=[formatter dateFromString:@08:00:00];NSLog@fdhvfjfdjd%@,起始日期;保持此值为2000-01-01 06:00:00+000请参考以下url,例如,我有时间=08:00:00开始和23:00:00结束时间和持续时间10分钟,我希望它们之间的所有时间都显示为08:00:00 08:10:00 08:00 08:00 08:30:00 08:40:00。。。。。。。。。。。。22:30:00 22:40:00 22:50:00 23:00:00你的意思是_startTime=@08:00:00开始?我想要的只是所有这些值和结束时间23:00:00和间隔10分钟我想要它们之间的所有时间