从月份名称获取月份编号?
快速的问题,我有一个按名称的月份列表,即“一月”“二月”“三月”“四月”...等,我想转换为1,2,3,4等。已经写了一些简单的代码来做到这一点,但只是好奇,如果有人知道使用任何API的方式来做到这一点。从月份名称获取月份编号?
快速回答:
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"MMM"];
NSDate *aDate = [formatter dateFromString:@"Jul"];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSMonthCalendarUnit fromDate:aDate];
NSLog(@"Month: %i", [components month]); /* => 7 */
完美谢谢。 – fuzzygoat 2012-02-02 15:54:03
查看NSDateComponents class Ref。这将是你可能要考虑使用的课程。
非常感谢,错过了那个,检查了NSDate和NSCalendar,谢谢。 – fuzzygoat 2012-02-02 15:55:39
得到了一些最简单的方法是让索引,如果几个月的列表进行排序:
NSLog(@"The number of the month is: %d.",[listOfMonths indexOfObject:@"Jan"]+1);
没有什么比这更直接。
这是一个很好的观点,我当然可以创建一个数组并使用它来查找月份索引。不错的主意,谢谢。 – fuzzygoat 2012-02-02 15:56:47
我很好奇,你想出了什么解决方案。 – 2012-02-02 16:24:48
为SWIFT用户可以使用:
Calendar.current.component(.month, from: date) Calendar.current.component(.day, from: date) ...
鉴于在四月举行的法国将是无毒,何况日语或阿拉伯语,我想你低估本地化的问题,在这一问题;) – Kheldar 2012-02-02 15:22:49
我只是从现有的数据表中读取数据,因此我的月份将始终是英文的“Jan”,“Feb”,“Mar”...格式,但是这根据数据的位置来自(哪里。 – fuzzygoat 2012-02-02 15:52:59