在我的iPhone应用中将string转换为date

我已经做了一个iPhone日历应用程序,我有一个datestring格式(例如“星期二,2010年5月25日12:53:58 +0000”)。

我想将其转换为NSDate

我需要用什么来做到这一点?

看看NSDateFormatter的类参考 。 你这样使用它:

 NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000"; // Convert string to date object NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"]; NSDate *date = [dateFormat dateFromString:dateStr]; [dateFormat release]; 

有关如何自定义NSDateFormatter的更多信息,请参阅本参考指南 。

编辑:

只是你知道,这是要parsing整个月份的名字。 如果您想要三个字母的月份名称,请使用LLL而不是LLLL

 -(NSString *)dateToFormatedDate:(NSString *)dateStr { NSString *finalDate = @"2014-10-15"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *date = [dateFormatter dateFromString:dateStr]; [dateFormatter setDateFormat:@"EE, d MMM, YYYY"]; return [dateFormatter stringFromDate:date]; } 

如果你使用iOS风格之一存储date,那么使用这个方法要容易得多,而且出错的可能性更小:

 // Define a date formatter for storage, full style for more flexibility NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterFullStyle]; [dateFormatter setTimeStyle:NSDateFormatterFullStyle]; // Use today as an example NSDate *today = [NSDate date]; // Format to a string using predefined styles NSString *dateString = [dateFormatter stringFromDate:today]; // Format back to a date using the same styles NSDate *todayFromString = [dateFormatter dateFromString:dateString]; 
 NSString *dateString=@"2017-05-25"; NSDateFormatter *dateFormatter=[NSDateFormatter alloc]init]; [dateFormatter setDateFormatter:@"MM-dd-yyyy"]; NSDate *date =[[NSDate alloc]init]; date=[datFormatter dateFromString:dateString];