将month int值转换为格式化字符串

时间:2014-05-24 19:00:25

标签: ios cocoa-touch time formatting nsdateformatter

我想使用NSDateFormatter的“LLL”字符串格式来获取月份名称的正确字符串:Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov /减速

我所拥有的只是月份的整数值。例如,如果值为5,那么我需要输出字符串“May”。

我不想使用开关。有什么方法可以使用NSDateFormatter并将setDateFormat:应用于“LLL”吗?

1 个答案:

答案 0 :(得分:1)

更好的方法是从格式化程序和索引中获取monthSymbols数组:

NSString * monthName = [formatter monthSymbols][monthInt];

如果你想要一个日期,NSCalendarNSDateComponents会让你到那里,让你从你拥有的任何日期元素创建一个NSDate

NSCalendar * cal = [NSCalendar currentCalendar];
NSDateComponents * comps = [NSDateComponents new];
[comps setMonth:monthVal];

NSDate * monthOnlyDate = [cal dateFromComponents:comps];

现在您可以在日期使用格式化程序了。

(请注意,除了用于此特定目的之外,此日期基本上没有意义;组件的任何未设置属性 - 小时,日,年 - 将是未定义的,并且日历将使用其自己的默认选项他们的价值观。)