我从这里开始参考前面的例子。但仍然存在空值问题。
字符串值为:==> strDate =“09-05-2012 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];
它给出(null)值。因为disDate具有(null)值。
为什么disDate设为nil ..? 任何解决方案..?
答案 0 :(得分: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"];
这是常用功能,您可以将它用于任何格式,只需要在参数中传递该格式。
答案 1 :(得分: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];
答案 2 :(得分:0)
您尚未设置格式化模式
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setFormatterBehavior:NSDateFormatterBehavior10_4];
[df setDateFormat:@"MMM dd, yyyy"];
NSDate *convertedDate = [df dateFromString:origDate];
[df release];
答案 3 :(得分: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];