如何将 Nsstring 转换为 NSDate?
How to convert Nstring to NSDate?
我想将 nsstring 转换为 nsdate
我有字符串有这个值
08:00:00
我想转换它所以我写了这段代码
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *startDate = [formatter dateFromString:_startTime];
NSLog(@"%@",startDate);
_startTime 有这个值 = 08:00:00
但是在我显示它之后的开始日期,它有这个值
2000-01-01 06:00:00 +0000
更新我写的这段代码
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 访问时间,则需要使用 NSDateComponents(或 NSTimeInterval)。
使用 NSDateComponents 从 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]);
我不明白更改字符串的目的是什么 _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);
}
运行 这个并使用 NSDateComponents 记录你想要的!
使用这个代码我认为这个对你有帮助..
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]);
我想这就是你真正想要的...
我想将 nsstring 转换为 nsdate 我有字符串有这个值
08:00:00
我想转换它所以我写了这段代码
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *startDate = [formatter dateFromString:_startTime];
NSLog(@"%@",startDate);
_startTime 有这个值 = 08:00:00
但是在我显示它之后的开始日期,它有这个值
2000-01-01 06:00:00 +0000
更新我写的这段代码
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 访问时间,则需要使用 NSDateComponents(或 NSTimeInterval)。
使用 NSDateComponents 从 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]);
我不明白更改字符串的目的是什么 _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);
}
运行 这个并使用 NSDateComponents 记录你想要的!
使用这个代码我认为这个对你有帮助..
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]);
我想这就是你真正想要的...