在我的iPhone应用程序中将字符串转换为日期

App*_*ect 55 string cocoa-touch date-formatting ios

我为iPhone制作了一个日历应用程序,其中我有一个字符串格式的日期(例如"Tue,2010年5月25日12:53:58 +0000").

我想将其转换为NSDate.

我需要做什么才能做到这一点?

Sam*_*hie 129

看一下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];
Run Code Online (Sandbox Code Playgroud)

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

编辑:

只是你知道,这将解析完整的月份名称.如果您想要三个月的名字,请使用LLL而不是LLLL.

  • 那个参考指南链接已经死了. (6认同)

Ana*_*ash 8

-(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];
}
Run Code Online (Sandbox Code Playgroud)


Pie*_*eau 6

如果您使用iOS的某个样式存储日期,则使用此方法会更容易,也更不容易出错:

// 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];
Run Code Online (Sandbox Code Playgroud)