2013-08-29 1 views
12

아래 코드를 붙여 넣으면 NSDate를 기록하려고합니다. 여기서 내가 뭘 잘못하고 있니?어떻게 NSDate를 NSLog합니까?

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"YYYY-MM-dd"]; 
NSDate *todaysDate; 
todaysDate = [NSDate date]; 
NSLog(@"Todays date is %@",formatter); 
+2

'NSLog (todaysDate "날짜는 %의 @입니다"@)'- 당신은 이해하는 데 필요한 날짜가 긴 형식과 UTC 시간대에 기록됩니다 물론, 그래서 그. 포맷터를 사용하려면'NSLog (@ "날짜는 % @", [formatter stringFromDate : todaysDate]);'입니다. –

+1

관련이 없지만 올해는'YYYY'가 아닌'yyyy'를 사용하십시오. 자세한 내용은 http://stackoverflow.com/questions/3063068/weird-behavior-when-creating-an-nsdate-of-january-the-1st-and-the-2nd를 참조하십시오. – Anna

답변

15

당신이해야 할 것입니다 : 당신이 잘못하고있는 것은

NSLog(@"Todays date is %@",[formatter stringFromDate:todaysDate]); 
4

당신은 포맷터에 날짜를 연결할 아무 짓도하지 않았습니다. 그래서, 당신은 이런 식으로 뭔가를하고 싶은 것 :

NSLog(@"Todays date is %@", [formatter stringFromDate:todaysDate]; 

NSDate은 (단지 정보를 날짜) 포맷에 대해 아무것도 모르는, 그리고 NSDateFormatter 나던 정말 날짜에 대해 아는, 그 형식을 얼마나. 따라서 실제로는 사람이 읽을 수있는 디스플레이를 위해 날짜를 실제로 포맷하려면 -stringFromDate:과 같은 메서드를 사용해야합니다.

그냥 날짜 정보를 볼 수있다 필요하고 특정 형식을 필요로하지 않는 무엇을, 당신이 로그인 할 날짜를 포매터를 필요로하지 않는 경우 :

NSLog(@"Todays date is %@", todaysDate); 

는 당신에게를 제공하기 위해 잘 작동합니다 NSDate 개체의 -description 나는 당신이 사용자에게 표시하는 것을 위해 이것을 사용하지 않을 것이다. (그걸 위해서 NSDateFormatter을 사용한다.) 그러나 이것은 단지 디버깅을하고 NSDate 객체에 대한 정보를 볼 필요가있을 때 유용하다.

1

전체 예제 :

NSDate *today = [NSDate date]; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"YYYY-MM-dd"]; 
    NSLog(@"%@",[formatter stringFromDate:today]); 
    [formatter release]; 
관련 문제