如何将Nstring转换为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

但是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

没有日期就不能有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]);

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

最新更新