10
아래 코드를 참조하십시오.NSDateFormatter + dateFormatFromTemplate : options : locale : BUG?
NSDateComponents *dateComponents = [[[NSDateComponents alloc] init] autorelease];
[dateComponents setYear:2011];
[dateComponents setMonth:1];
[dateComponents setDay:1];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"YYYYMMMd" options:0 locale:[NSLocale currentLocale]]];
NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"Happy New Year: %@", dateString);
예상되는 결과는 무엇입니까?
Happy New Year: Jan 1, 2011
그러나 결과는 ...
Happy New Year: Jan 1, 2010
문제점은 무엇입니까? 도와주세요 ...
+1 특히, Y는 현재주의 연도입니다. 2011 년 1 월 1 일 주는 2010 년에 속하므로 YYYY는 2010 년을 생산합니다. – ughoavgfhw
대단히 감사합니다 ~ – alforo
@ughoavgfhw : 감사합니다. 나는 "Y"가 대부분의 시간 동안 "일"하는 것처럼 보이기 때문에 혼란 스러울 수 있기 때문에 대답의 차이점을 지적해야했습니다. 대문자 "Y"는 귀하의 날짜를 포함하는 주간이 시작되는 연도를 알려줍니다. 따라서 Jan 1이 목요일에있는 경우 "Y"는 해당주의 * 시작 *의 연도를 부여합니다 (예 : 월요일). 1 월 7 일 이후에 "Y"는 "y"와 같은 결과를 줄 것입니다. 물론 올바른 서식 지정 문자를 사용하는 것이 더 좋습니다. – Anna