Objective c 如何将Nstring转换为NSDate?
我想将nsstring转换为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
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分钟我想要它们之间的所有时间