2012-02-02 3 views
4

빠른 질문, 나는 "1 월" "2 월" "3 월" "4 월"... 등 1,2,3,4 ... 등으로 변환하고 싶은 등 즉, 이름으로 개월 목록을 가지고 이 작업을 수행하는 간단한 코드를 작성했지만 누군가가 API를 사용하여이를 수행 할 수있는 방법을 알고 있다면 궁금 할뿐입니다.월 이름에서 월 번호를 가져 옵니까?

+2

프랑스어 월에하지 난 당신이이 질문에 현지화의 문제를 과소 평가한다고 생각, 일본어, 아랍어 언급, AVR 것이라고 감안할 때) – Kheldar

+0

기존 데이터 표를 읽는 중입니다. 따라서 내 월은 항상 영어의 "Jan" "Feb" "Mar"... 형식이 될 것입니다. 그러나 데이터가있는 위치에 따라 명심해야 할 점이 있습니다. 에서 오는. – fuzzygoat

답변

13

빠른 대답 :

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 */ 

date formatters를 참조하십시오.

+0

감사합니다. – fuzzygoat

2

NSDateComponents 클래스를 확인하십시오. 그것은 당신이 사용하기를 원할지도 모르는 수업이 될 것입니다.

+0

NSDate와 NSCalendar를 확인해 주셔서 감사합니다. – fuzzygoat

2

번호를 얻을 수있는 가장 쉬운 방법은 달의 목록을 주문하면 것을, 인덱스를 얻을 수 있습니다 :

NSLog(@"The number of the month is: %d.",[listOfMonths indexOfObject:@"Jan"]+1);

이것보다 직접 아무것도 없습니다. 스위프트 사용자에 대한

+0

좋은 지적입니다. 필자는 배열을 만들어 월 인덱스를 찾아 볼 수있었습니다. 좋은 빠른 생각, 고마워. – fuzzygoat

+0

지금 궁금한데, 그 해결책은 무엇입니까? –

0

사용할 수 :

Calendar.current.component(.month, from: date) Calendar.current.component(.day, from: date) ...