2009-11-06 3 views

답변

129

date formatter을 원합니다.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"]; 

NSDate *currentDate = [NSDate date]; 
NSString *dateString = [formatter stringFromDate:currentDate]; 
+0

iphone-ness 용으로 편집되었습니다. –

+2

포매터를 출시하는 것을 잊지 마십시오.

+0

주위를 지키고 싶지 않으면; 메모리 관리가 문제가 될 수도 있고 그렇지 않을 수도 있습니다. –

15

중 하나가 칼 말했듯이 NSDateFormatter를 사용하거나 또한 완벽하게 유효한 목표 - C 인 좋은 오래된 strftime을 사용합니다 :

: 여기
#import <time.h> 
time_t currentTime = time(NULL); 
struct tm timeStruct; 
localtime_r(&currentTime, &timeStruct); 
char buffer[20]; 
strftime(buffer, 20, "%d-%m-%Y %H:%M", &timeStruct); 
+0

Objective C에서 C 문자열을 너무 많이 사용할 수 없다는 점에 유의하십시오. 콘솔에 로깅 할 때 더 편리 할 수 ​​있습니다. 'NSLog (@ "% s", 버퍼)'라고 말할 수 있습니다. –

+3

C에서 C 문자열로 수행 할 수있는 모든 작업은 Objective-C에서 수행 할 수 있습니다. 말하자면, 거의 모든 것. C 문자열과 NSString을 모두 사용하고 현재 사용 사례에 적합한 것을 선택해야합니다. 저는 개인적으로 Carl의 솔루션으로 갈 것이지만, 이것이 유일한 방법이 아니라는 것을 알고 있어야합니다. –

+0

strftime을 사용하지 않는 이유는 (변환해야하는 C 문자열을 생성 함에도 불구하고) 더 많은 가변 길이의 숫자 결과를 포함하여 NSDateFormatter 날짜 형식 지정 옵션의 훨씬 더 큰 유연성을 잃게된다는 것입니다. 곧. –

7

간단한 솔루션입니다 여기에 예제
- (NSString *)stringWithDate:(NSDate *)date 
{ 
    return [NSDateFormatter localizedStringFromDate:date 
             dateStyle:NSDateFormatterMediumStyle 
             timeStyle:NSDateFormatterNoStyle]; 
} 

서식 지정 요구 사항과 일치하도록 dateStyletimeStyle을 변경하십시오.

+0

어딘가에 날짜를 만들어서는 안됩니까? 당신은 그것을 전달하지 않습니다. – Randy

+0

좋은 캐치 @Randy는'date' 오브젝트를 매개 변수로 전달하는 함수를 업데이트했습니다. – Zorayr

3

어쩌면이 더 많은 읽을 수 : 모든

NSDateFormatter *date = [[NSDateFormatter alloc] init]; 
    [date setDateFormat:@"HH:mm"]; 
    NSString *dateString = [date stringFromDate:[NSDate date]]; 
    [self.time setText:dateString]; 

먼저 우리가 NSDateFormatter 만들가 내장 된 OBJ-C에 이름 날짜에, 우리는에 의해 적용[[NSDateFormatter alloc] init];. 그 후 우리는 코드 프로 세서에게 우리의 데이트가 HOUR/MINUTE/SECOND를 갖기를 원한다고 말합니다. 마지막으로 우리는 날짜를 경고 또는 레이블 값을 설정하는 문자열로 지정해야합니다. 이렇게하려면 NSString 메서드를 사용하여 문자열을 만들어야합니다. [날짜 문자열 시작 날짜] [NSDate 날짜]]

Have Fun with it.