2012-05-09 78 views
1

我已经参考了以前的例子。但空值仍然存在问题。iPhone中的字符串转换日期

字符串值:==> strDate = “2012-05-09 00:00:00”

我想作为输出:==> 2012年5月9日

我的代码:

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]; 

它给出(空)值。因为disDate具有(空)值。

为什么将disDate设置为零..? 任何解决方案..?

+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通过fromFormat与您的字符串Ex相同。如果您的字符串是05/12/2011,那么fromFormat应该是MM/dd/yyyy –