2011-10-29 2 views
7

두 개의 NSString을 만드는 NSDate 개체가 있습니다. 날짜와 시간. 현재 나는 날짜를 20111031로, 시간은 23:15로 포맷합니다.장치 현재 영역 설정 후의 날짜 및 시간 형식

내가 뭘하고 싶은지 장치 (iPhone, iPad, iPod Touch)의 현재 지역 설정 (언어가 아님)으로 포맷하고 싶습니다. 그래서 예를 들면 :

  • 이 지역으로 설정하는 장치가 미국 (내 머리의 상단에서) 보여 것이다 10.31.11 시간 오후 11시 15분
  • 지역으로 설정하는 장치 네덜란드 보여줄 것이다 : 31- 10-2011 시간 23.15
  • 보여줄 것이다 지역 스웨덴어로 설정 장치 : 2001년 10월 31일와 시간을 23시 15분

내가 어떻게 할 수 있습니까?

+1

형식 : 전화가 설정에서 로케일 언어를 알고로 한 (내가 원하는 모든 날짜, 시간이 아니다 때) 국제 날짜 형식에 대한 내 마음에 더 나은이입니다. –

답변

37

NSDateFormatter 기본적으로 휴대 전화의 기본 로케일을 가지고 있기 때문에 다음은, 충분해야한다 :

NSDate *date = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 

참고로 여기에 우리와 함께 발생하는 상황, 네덜란드, 스웨덴 :

[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
// displays 10/30/11 7:09 PM 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"]]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
// displays 30-10-11 19:09 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"sv_SE"]]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
// displays 2011-10-30 19:09 
+0

많은 감사. 그걸 몰랐어. (지금 다소 어리 석다라고 느낀다)) –

+2

나의 기쁨! 지난 3 일 동안 NSDate 관련 버그를 다루면서 내가 원하는 것보다 더 많은 것을 배웠기 때문에 나는 이것을 알았다 : P – yuji

7

많은 좋은 코드 스 니펫. 휴대 전화의 기본 로케일을 사용하여

NSDate *date = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifier]]; 
[dateFormatter setTimeStyle:NO]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]);