2012-05-09 5 views
1

여기에서 이전 예제를 참조했습니다. 하지만 여전히 null 값의 문제.iPhone에서의 문자열 변환

문자열 값은 다음과 같습니다 ==> strDate = "09-05-2012 0시 0분 0초는"

내가로 출력합니다 : ==> 5 월 09, 2012

내 코드 :

NSString *strDateFormat;//[strDate substringWithRange:NSMakeRange(0, 10)]; 
strDateFormat = [NSString stringWithFormat:@"%@", strDate]; 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 

NSDate *disDate = [df dateFromString:strDateFormat]; 
[df setDateFormat:@"MMM dd, yyyy"]; 

strDateFormat = [df stringFromDate:disDate]; 

lblDate.text = [NSString stringWithFormat:@"%@", strDateFormat]; 

[df release]; 

(null) 값을 제공합니다. 왜냐하면 disDate에는 (null) 값이 있기 때문입니다.

왜 disDate를 nil ..으로 설정합니까? 모든 솔루션 ..?

+0

해결책이 있습니까? –

답변

2

문자열을 읽을 때 기대할 형식을 포맷터에게 알려줘야합니다.

NSString *string = @"09-05-2012 00:00:00"; 
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *date = [formatter dateFromString:string]; 
[formatter setDateFormat:@"MMM dd, yyyy"]; 
NSString *formattedString = [formatter stringFromDate:date]; 
0

당신은 포맷터 패턴

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setFormatterBehavior:NSDateFormatterBehavior10_4]; 
    [df setDateFormat:@"MMM dd, yyyy"]; 
    NSDate *convertedDate = [df dateFromString:origDate]; 
    [df release]; 
0
NSString *strDateFormat; //[strDate substringWithRange:NSMakeRange(0, 10)]; 

strDateFormat = [NSString stringWithFormat:@"%@", strDate]; 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 

[df setDateFormat:@"MMM dd, yyyy"]; 
// ###### Set dateformat also here according to strDateFormat 

NSDate *disDate = [df dateFromString:strDateFormat]; 

[df setDateFormat:@"MMM dd, yyyy"]; 

strDateFormat = [df stringFromDate:disDate]; 

lblDate.text = [NSString stringWithFormat:@"%@", strDateFormat]; 

[df release]; 
2
-(NSString*)getStringWithFormat:(NSString*)pStrDate fromFormat:(NSString*)pFromFormat toFormat:(NSString*)pToFormat 
{ 
    NSDateFormatter *dtFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [dtFormatter setDateFormat:pFromFormat]; 
    NSDate *fromFormatDate = [dtFormatter dateFromString:pStrDate]; 
    [dtFormatter setDateFormat:pToFormat]; 
    return [dtFormatter stringFromDate:fromFormatDate]; 
} 

을 설정하고 그냥이 공통 기능은, 당신은 어떤 포맷을 사용할 수있다이

NSString *strDate = [self getStringWithFormat:@"09-05-2012 00:00:00" fromFormat:@"dd-MM-yyyy HH:MM:SS" toFormat:@"MMM dd, yyyy"]; 

과 같이 호출하지 않은 그 형식을 인수로 전달해야합니다.

+0

안녕하세요. 그러나 여전히 null 값을 반환합니다. NSDate * fromFormatDate -> 값을 소비합니다. 이제 어떤 생각입니까? –

+0

Plz는 문자열 Ex와 같은 fromFormat을 전달합니다. String이 05/12/2011이면 fromFormat은 MM/dd/yyyy 여야합니다. –