我想将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
但是我显示它之后的startDate,它有这个值
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
答案 0 :(得分:0)
没有约会你就无法获得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记录您想要的内容!
答案 1 :(得分:0)
使用此代码我认为这个可以帮助您..
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]);
我认为这是你真正想要的......