将NSString转换为date

我有两个string:date1 = 3-3-2011;

我想转换成2011年3月3日,并显示在标签。

NSString *myString = 3-3-2011; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"d-MM-YYYY"]; NSDate *yourDate = [dateFormatter dateFromString:myString]; //now format this date to whatever you need… [dateFormatter setDateFormat:@"d-MMM-YYYY"]; NSString *resultString = [dateFormatter stringFromDate:yourDate]; [dateFormatter release]; 

但是你的date= 2010-12-25 18:30:00 +0000

resultstring = 2010年12月26日

我想要2010年3月3日

请帮忙! 谢谢。

你可以使用NSDateFormatter

  1. 将当前的string转换为NSDate对象,以便将其转换为您想要的任何格式。

     NSString *myString = @"3-3-2011"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"dM-yyy"]; NSDate *yourDate = [dateFormatter dateFromString:myString]; 
  2. 现在你可以将这个NSDate转换成你想要的任何格式。

     [dateFormatter setDateFormat:@"d-MMMM-yyyy"]; NSString *resultString = [dateFormatter stringFromDate:yourDate]; [dateFormatter release]; 

关于NSDateFormatter Apple文档就在这里 。

看看NSDateFormatter 。 特别的,看看dateFromString:stringFromDate:方法。 您需要将原始string转换为NSDate,然后将该NSDate转换为另一个string。

使用NSDateFormatter的一个技巧:确保总是设置一个语言环境。 如果您没有手动设置区域设置,则它有一个关于12/24小时时钟设置的错误。 我链接的页面上的示例代码显示了如何设置语言环境。

使用dMY(或MdY,取决于哪一个月):

 NSString *myString = 3-3-2011; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"dMY"]; NSDate *yourDate = [dateFormatter dateFromString:myString]; 

请参阅Apple文档中提到的Unicode标准 。