格式化字符串中的日期

Emi*_*mil 4 iphone nsdate nsstring nsdateformatter

我正在尝试将字符串中的日期格式化为另一种格式.

例如:2012-05-29 23:55:52into 29/05 *newline* 2010.

我只是不知道NSDate和NSDateFormatter背后的逻辑,我想..

任何帮助将不胜感激.谢谢 :)

Jas*_*ien 9

您需要创建一个NSDateFormatter,然后将其设置为dateFormat以匹配您拥有的第一个日期,例如:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
Run Code Online (Sandbox Code Playgroud)

这将设置您的日期格式化程序以识别您的日期字符串.然后,您可以使用此方法获取NSDate对象

NSDate *myDate = [dateFormatter dateFromString:myDateString]; // myDateString is the 2012-05-29 23:55:52 string
Run Code Online (Sandbox Code Playgroud)

这为您提供了表示该日期的完整NSDate对象.现在您需要重新格式化日期并将其转换回字符串,因此将格式化程序上的dateFormat设置为新格式​​,并获取返回日期的新字符串表示形式:

[dateFormatter setDateFormat:@"dd/MM\nyyyy"];
NSString *newlyFormattedDateString = [dateFormatter stringFromDate:myDate];
[dateFormatter release], dateFormatter = nil;
Run Code Online (Sandbox Code Playgroud)

瞧!你有新的约会:)