Iphone 正在形成“字符串”;2012年6月29日;进入NSDate';s";NSDATEFormateTerminiumStyle;?

Iphone 正在形成“字符串”;2012年6月29日;进入NSDate';s";NSDATEFormateTerminiumStyle;?,iphone,ios,ios5,nsdate,nsdateformatter,Iphone,Ios,Ios5,Nsdate,Nsdateformatter,我试图将月份和日期与下面的字符串分开 2012-06-29 我已尝试通过执行以下操作将字符串格式化为中等样式: //Setting Up My Formatter formatter = [[NSDateFormatter alloc] init]; [formatter setDateStyle:NSDateFormatterMediumStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; Forming String In

我试图将月份和日期与下面的字符串分开

2012-06-29
我已尝试通过执行以下操作将字符串格式化为中等样式:

//Setting Up My Formatter
formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];

Forming String Into Formatted Date
NSDate *dateFromString = [formatter dateFromString:event.date];

//Separating Components
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:dateFromString];

//Assigning Each Component to my Cell's Labels
cell.dayLabel.text = [NSString stringWithFormat:@"%d", [components day]];
cell.monthLabel.text = [NSString stringWithFormat:@"%d", [components month]];
当我运行nslog时,我的“event.date”come back 2012-06-26&dateFromString返回空值。有人能帮我指引正确的方向吗?非常感谢

编辑: 因此,我最终从您的帮助中发现,我设置的格式不正确。而不是使用:

[formatter setDateStyle:NSDateFormatterMediumStyle];
我现在使用:

[formatter setDateFormat:@"yyyy-MM-dd"];

这是我的问题,从组件来看,月份是一个整数(1,2,3),但我希望它返回为“MMM”(1月,2月,3月)。谢谢!

尝试设置setDateFormat


[格式化程序setDateFormat:@“yyyy-MM-dd”];

尝试设置setDateFormat


[formatter setDateFormat:@“yyyy-MM-dd”];

由于您已告知它需要以下格式的字符串(来自):

1937年11月23日下午3:30

您需要使用以下内容设置自定义格式:

[formatter setDateFormat:@"yyyy-MM-dd"];

dateFromString
失败,因为您已告诉它需要以下格式的字符串(来自):

1937年11月23日下午3:30

您需要使用以下内容设置自定义格式:

[formatter setDateFormat:@"yyyy-MM-dd"];

我会这样做:

首先创建NSDateFormatter以正确接收字符串:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:"yyyy-MM-dd"];
从字符串中获取日期:

NSDate *yourDate = [formatter dateFromString:@"2012-06-29"];
获取日期的组件:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:yourDate];
获取组件的属性:

[components day];    
[components month];
[components year];
发布需要发布的内容:

[formatter release];
评论回复:

是的,你应该做相反的事情

创建另一个NSDateFormatter(使用引用:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns)

`
此时,您可以将其截断/大写为您想要的任何形式,因为您将得到小写形式,而且可能有点太长。(请查看参考资料)

以下是我的操作方法:

首先创建NSDateFormatter以正确接收字符串:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:"yyyy-MM-dd"];
从字符串中获取日期:

NSDate *yourDate = [formatter dateFromString:@"2012-06-29"];
获取日期的组件:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:yourDate];
获取组件的属性:

[components day];    
[components month];
[components year];
发布需要发布的内容:

[formatter release];
评论回复:

是的,你应该做相反的事情

创建另一个NSDateFormatter(使用引用:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns)

`
此时,您可以将其截断/大写为您想要的任何形式,因为您将得到小写形式,并且可能有点太长

请看,您可能需要设置日期格式设置器的区域设置。请看,您可能需要设置日期格式设置器的区域设置。谢谢,但对于这个月,我希望格式为APR、JUN或OCT…而不是4、6或10。有可能吗?谢谢,但是对于这个月,我希望格式为APR、JUN或OCT…而不是4、6或10.有可能吗?谢谢,但是这个月我希望格式为4、6或10,而不是4、6或10。有可能吗?谢谢,但是这个月我希望格式为4、6或10,而不是4、6或10。有可能吗?